在laravel 4中创建自定义按钮

时间:2015-02-26 14:26:14

标签: php laravel

有人可以一步一步告诉我如何在我的应用程序中创建功能类似按钮?解释它是如何工作的,所以我不必依赖你的代码,并且可以自己创建我自己的按钮。我希望有人会指导我,因为我不知道这个东西是如何工作的,我必须创建多少个数据库表,或者我应该使用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>

1 个答案:

答案 0 :(得分:0)

您没有指定是否应该为用户或帖子,我猜它是为帖子。在以太网情况下,您不应该创建新表,因为您可以添加&#34; number_of_like&#34;列到你的帖子表。

然后在@foreach中创建一个like按钮($ row为$ post),它看起来像这样:

{{ Form::open(['method' => 'POST', 'route' => [ 'post_path', $post->id ] ) }}
    <button type="submit" >Like</button>
{{ Form::close() }}

上面你将post id发布到post_path,然后在routes.php中定义:

Route::post('post/{id}', [
    'as' => 'post_path',
    'uses' => 'PostController@update'
]);

现在在你的PostController中,你将收到id作为更新方法参数,并可以用它来查找帖子并更新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来改进它。