Laravel 5.6没有获得输入值

时间:2018-07-24 00:27:53

标签: php laravel

Laravel没有得到数值,我已经设置好控制器和路由,因为我在修补程序中对其进行了测试,并且它可以工作。但是,如何将输入传递到控制器似乎存在问题。

没有得到这个$request['val'];

路线

Route::post('rate/{book_id}','BookController@rate');

BookController.php

public function rate(Request $request, $book_id)
{

    $book = Book::find($book_id);

    $rating = new willvincent\Rateable\Rating();
    $rating->rating =  $request['val'];
    $rating->user_id = auth()->user()->id;

    $book->ratings()->save($rating);



}

show.blade.php

   <h5>Click to rate:</h5>

    <form action="{{ url('rate', ['book' => $book->id] ) }}" method="POST">
        <input name="val" value="0" type="number">

        <button type="submit" class="btn btn-primary">Submit</button>

    </form>

1 个答案:

答案 0 :(得分:1)

您是否不知道$requestRequest类的对象。

您无法通过此系统访问值-$request['val']

->可以像访问对象一样访问

$rating->rating =  $request->val;

您正在使用[],通过此系统,我们可以从数组中提取数据。

要获得更多许可,

web.php中,将路线命名为

Route::post('rate/{book_id}','BookController@rate')->name('rate');

在视野中,

<form action="{{ route('rate', $book->id) }}" method="POST">
    @csrf
    <input name="val" value="0" type="number">
    <button type="submit" class="btn btn-primary">Submit</button>
</form>

在控制器中,

$rating->rating =  $request->val;