在Laravel的同一页面上发布评论并显示评论

时间:2019-06-04 09:43:49

标签: php laravel-5.7

我正在构建一个应用程序,允许用户查看一本书,在同一页面上发布该书的评论,并在成功发布后查看他们的评论。我的目标是使所有事情都发生在同一页面上。

我正在使用Laravel 5.7,这就是我的代码当前的样子

web.php

Route::post('books/{book}', 'RatingController@store');

控制器

public function store(Request $request)
{
    dd($request);
}

视图

<form action="/books/{{$book->id}}" method="POST">
    @csrf

    <input type="text" class="form-control" name="username">

    <textarea class="form-control" name="comment" rows="3"></textarea>

    <button type="submit" class="btn btn-primary btn-block">Post</button>
</form>

提交表单时,我看不到数据已转储,但我留在同一页面上,而URL看起来像这样http://127.0.0.1:8000/books/1?_token=gAkb9P6ryh2vVs4nj0db4gggBzqZPzUg0fQp3fCC&username=Fomsky&comment=awesome+reading

这不是我想要的行为,我想在控制器中使用request数据,因此是我首先转储它的原因。

实现我的目标的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

尝试这样:

  

*******选项1 ********

路线

Route::resource('books', 'RatingController');

控制器

public function store(Request $request)
{
    dd($request->all());
}

表格

<form action="{{ route('books.store') }}" method="POST">
    @csrf

    <input type="text" class="form-control" name="username">
    <input type="hidden" name="book_id" value="{{ $book->id}}">
    <textarea class="form-control" name="comment" rows="3"></textarea>

    <button type="submit" class="btn btn-primary btn-block">Post</button>
</form>
  

*******选项2 ********

路线

Route::post('books/store', 'RatingController')->name('books_store');

控制器

public function store(Request $request)
{
    dd($request->all());
}

表格

<form action="{{ route('books_store') }}" method="POST">
    @csrf

    <input type="text" class="form-control" name="username">
    <input type="hidden" name="book_id" value="{{ $book->id}}">
    <textarea class="form-control" name="comment" rows="3"></textarea>

    <button type="submit" class="btn btn-primary btn-block">Post</button>
</form>