我这里有这个代码,列出了一个用户的所有项目,用户和项目是两个不同的模型,它们与主键有关系。
@foreach($user->items as $item)
<p class="heading">
<a href="">{{ $item->item_id }}</a>
</p>
@endforeach
我的问题是如何将带有post请求的item_id
发送给控制器,因为当我这样编写例如<form class="form-horizontal" method="post" action="{{ route('preview', $item->item_id) }}" role="form" enctype="multipart/form-data">
时,它会告诉我$ item变量未定义。
我的控制器:
public function preview($item_id){
return view('itempreview')->with('item_id', $item_id);
}
任何想法如何发送item_id
?
答案 0 :(得分:0)
您需要发送$item_id
作为POST的一部分:
@foreach($items as $item)
<form method="post" action="{{ route('preview') }}">
<input type="hidden" name="item_id" value="{{ $item->item_id }}">
</form>
@endforeach
然后在接收POST的方法中:
public function index() {
$item_id = request()->input('item_id');
return view('preview');
}
答案 1 :(得分:0)
你应该使用数组作为route()
方法的第二个参数!
你做错了,你应该这样发送:
route('preview', ['item_id' => $item->item_id]);
确保您的路线应定义为:
Route::post('preview/{item_id}', 'ControllerName@preview')->name('preview');
希望这有帮助!