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>
答案 0 :(得分:1)
您是否不知道$request
是Request
类的对象。
您无法通过此系统访问值-$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;