Laravel 7 使用 request->route('id) 分配 foreignID?
Posted
技术标签:
【中文标题】Laravel 7 使用 request->route(\'id) 分配 foreignID?【英文标题】:Laravel 7 assigning foreignID using request->route('id)?Laravel 7 使用 request->route('id) 分配 foreignID? 【发布时间】:2020-09-03 06:58:34 【问题描述】:我正在尝试向商店功能提交表单。问题是,foreignKey (degree_id) 一直被设置为 ?(null),即使我将它设置为路由中的 id。
表格:
!! Form::open(['url' => 'degrees/ $Degree->id ', 'method' => 'POST']) !!
<div class="form-group">
Form::label('title', 'Title')
<br>
Form::text('title', '', ['class' => 'form-control', 'placeholder' => 'Title'])
</div>
@error('title')
<small class="text-danger"> $message </small>
@enderror
路线:
Route::post('degrees/degree', 'ModuleController@store');
存储功能:
public function store(Request $request)
$this->validate($request, [
'title' => 'required',
'desc' => 'required',
'long_desc' => 'required',
'hours' => 'required',
'credits'=> 'required',
]);
$module = new Module;
$module->title = $request->input('title');
$module->desc = $request->input('desc');
$module->long_desc = $request->input('long_desc');
$module->hours = $request->input('hours');
$module->credits = $request->input('credits');
$module->degree_id = $request->route('id');
$module->save();
return redirect('/home/modules');
我已经将 degree_id 设置为可为空,因此我可以创建我的模块并让它正常显示,但对于未来的功能,我希望将其设置为 degree_id。知道什么在这里不起作用吗?我确实建立了模型关系,但我看不出这会如何影响它。也许路线本身有什么东西?
【问题讨论】:
【参考方案1】:您不能在 php 元素中使用 Blade Mustache,请改用它:
!! Form::open(['url' => 'degrees/' . $Degree->id , 'method' => 'POST']) !!
【讨论】:
【参考方案2】:您的路由参数未命名为id
,您在路由定义中将其声明为名称degree
('degrees/degree'
)。
$request->route('degree');
【讨论】:
【参考方案3】:改变路线
Route::post('degrees/degree', 'ModuleController@store');
TO
Route::post('degrees/id', 'ModuleController@store');
【讨论】:
以上是关于Laravel 7 使用 request->route('id) 分配 foreignID?的主要内容,如果未能解决你的问题,请参考以下文章
测试 Laravel Controller 的 try catch
Laravel 5.7 - 多对多关系 - 选择具有提供的类型 ID 数组的电影