Может кто-нибудь сказать мне, шаг за шагом, как я могу создать функциональную кнопку? в моем приложении? и как это работает, поэтому мне просто не нужно полагаться на ваши коды, чтобы я мог создать свою собственную кнопку «Мне нравится» самостоятельно. И я надеюсь, что кто-то поможет мне, потому что я не знаю, как эта штука работает, сколько таблиц базы данных мне нужно создать, или я должен использовать javascript (надеюсь, нет). Мое приложение может отображать все сообщения из базы данных, и это мой код до сих пор.
от моего контроллера.
public function dashboard()
{
$mytime = Carbon\Carbon::now();
$user = Auth::user();
$posts = Post::where('reviewed', '=' , 1)->orderBy('created_at', 'DESC');
$url = asset('img/logo.gif');
$this->layout->content = View::make('interface.dashboard',
array('posts' => $posts->paginate(9)))
->with('img', $url)
->with('user', $user)
->with('date', $mytime);
}
и мои взгляды
<div class="dashboard">
@foreach (array_chunk($posts->getCollection()->all(),4) as $row)
<div class="row">
@foreach($row as $post)
<article class="col-md-4 effect4" class="dash-box">
<p></p>
<div><img src="{{ asset('img/' . $post->image) }}" /></div>
<b><a href="{{ URL::action('LoginUsersController@viewPost' , array('id' => $post->id))}}">{{$post->title}}</a></b>
<hr>
<d>{{$post->created_at->toFormattedDateString()}}</d>
</article>
@endforeach
</div>
@endforeach
<div class="page">
{{$posts->appends(Request::only('difficulty'))->links()}}
</div>
</div>
Вы не указали, должно ли подобное быть для пользователя или для поста, я предполагаю, что это для поста. В случае эфира вам не следует создавать новую таблицу, так как вы можете добавить столбец «number_of_like» в вашу таблицу Post.
Затем создайте кнопку «Нравится» в вашем @foreach ($ row as $ post), и она будет выглядеть так:
{{ Form::open(['method' => 'POST', 'route' => [ 'post_path', $post->id ] ) }}
<button type="submit" >Like</button>
{{ Form::close() }}
Выше вы публикуете идентификатор записи в post_path, который затем определяется в вашем rout.php:
Route::post('post/{id}', [
'as' => 'post_path',
'uses' => 'PostController@update'
]);
Теперь в вашем PostController вы получите идентификатор в качестве параметра метода обновления и можете использовать его для поиска записи и обновления number_of_likes:
public function update($id)
{
$post = Post::findOrFail($id);
$post->number_of_likes++;
$post->save();
return Redirect::back();
}
При создании сообщения, которое должно быть в PostController @ create, вы должны инициализировать number_of_likes нулем.
В конце, чтобы показать, сколько лайков есть, просто добавьте его перед кнопкой:
{{$post->number_of_likes}} <button type="submit" >Like</button>
Обратите внимание, что все это можно сделать разными способами, но это один из основных способов сделать это. Когда вы заработаете это, вы можете попытаться улучшить его с помощью некоторого JavaScript, если это необходимо.
Других решений пока нет …