我正在尝试在提交表单时传递路径的ID。 当我传递像
这样的硬编码ID时<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>7]) }}">
它有效。该表将外键id显示为7.
当我从用户表中传递id
时<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>auth()->user->id]) }}">
这也有效,数据库中的id字段显示用户ID。
我想从通知表中传递一个id,当我尝试做类似
的事情时<form class="form-horizontal" role="form" method="POST" action="{{ route('submit.lmo_list', ['id'=>notification()->id]) }}">
它会抛出一个错误,说找不到方法通知。
通知控制器
public function create(Request $request)
{
$notification = Notification::create([
'unit_code'=>$request->unit_code,
'unit_name'=>$request->unit_name,
'project_title'=>$request->project_title,
'project_ref_number'=>$request->project_ref_number,
'storage_location'=>$request->storage_location,
'keeper_name'=>$request->keeper_name,
'user_id'=>Auth::user()->id
]);
return redirect()-> route('show.lmo_form', $notification->id);
}
这里我在提交表单后传递带有url的通知ID,并在网址中正确显示了id。
通知lmo控制器
public function create(Request $request, $notification_id)
{
/*this loop is because im adding rows dynamically to the table*/
$count = count($request->input('lmo_name'));
for ($i=0; $i<$count; $i++){
$data = AddLmoNotification::create([
'lmo_name'=>$request->lmo_name[$i],
'lmo_risk_level'=>$request->lmo_risk_level[$i],
'lmo_quantity'=>$request->lmo_quantity[$i],
'lmo_volume'=>$request->lmo_volume[$i],
'notification_id'=>$notification_id
]);
}
return redirect()->route('show.go_to_notification');
}
这是将数据与第一个表的id一起插入第二个表的控制器。
当我提交表单时,我收到错误
未定义的方法通知()
请帮助
如果您需要查看任何其他文件,例如模型和数据库迁移,请告诉我。
答案 0 :(得分:1)
我不知道通知()帮助器。你确定打算打这个电话吗
... route('submit.lmo_list', ['id' => notification()->id]) ...
而不是
... route('submit.lmo_list', ['id' => $notification->id]) ...
将变量传递给路由函数? 因为那可能只是找不到的功能。 如果这不能解决您的问题,您传递到视图中的变量列表可能有助于了解最新情况。 (请提供返回视图的控制器方法),laravel生成的完整错误消息+堆栈可能会有很大帮助。
我建议您将通知传递给您的观点
return view('Notification.notification_for_lmo')
->with('notification', $notification);
您现在可以通过视图中的$notification
访问您的通知,并按照上面的建议应用路线方法。
This可能会帮助您。