如何在laravel中绑定表单标记的路由URL

时间:2017-12-23 17:08:59

标签: php laravel laravel-5 blade

这是我的表格标签

    <form method="POST" action="{{ url("/post/{$article->id}/comment") }}">> 

这是我的路线

    Route::post('/post/{article}/comment', 'CommentController@store');

这是我的commentcontroller方法

    public function store(Article $article)
        {
             $comment = $article->comment->create([
            'body' => request('body'),
            ]);
            return back();
        }

show.blade.php

`@extends('master')
@section('content')
<!-- Example row of columns -->
<div class="container">
    <h1> {{ $articles->title }} </h1>
    <p> {{ $articles->body }} </p>
    <hr></hr>
    <div class="comment">
        <ul class="list-group"> 
            @foreach($articles->comments as $comment)
            <li class="list-group-item">
                <strong>
                    {{ $comment->created_at->diffForHumans()}} : &nbsp;
                </strong>
                {{ $comment->body }}
            </li>
            @endforeach
        </ul>
    </div>
    <!-- Here is comment form -->
    <hr>
    <div class="card">
        <div class="card-block">
            <form method="POST" action="{{ url ("/post/{$article->id}/comment") }}">> 
                {{ csrf_field() }}
                <div class="form-group">
                    <textarea name="body" placeholder="your comment here." class="form-control">  </textarea>

                </div>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary">Add Comment</button>
                </div>
            </form>
        </div>
        @include('partials.errors')
    </div>
</div>
@endsection`

当我试图在文章I上添加评论时,会收到如下错误:

> Undefined variable: article (View: C:\xampp7\htdocs\Lara\resources\views\article\show.blade.php)

这有什么不对吗?帮帮我。提前致谢

2 个答案:

答案 0 :(得分:0)

您似乎没有通过$article查看。你还没有包含代码,但你有类似的地方:

return view('article.show');

而你应该:

return view('article.show', compact('article'));

所以最后控制器中的show方法看起来应该是这样的:

public function show(Article $article)
{
    return view('article.show', compact('article'));
}

答案 1 :(得分:0)

因为您正在调用您的文章$articles(复数),实际上它只是一篇文章。

控制器中的

$articles更改为$article,然后在您有文章的视图中更改它,例如$articles->body。在表单操作中使用它时,它将是正确的。