我想将对象从刀片文件传递到控制器文件。目的是当用户单击编辑按钮时,用户将获得一个填充有先前输入数据的表单。我在刀片文件中使用以下代码:
<a href="/feestype/{{ $feesType->id }}/edit" class="btn btn-info btn-sm">Edit</a>
但是当我想从控制器的edit方法中获取传递的对象时,我得到的是null。我的控制器代码现在是这样的:
public function edit(FeesType $feesType)
{
//
dump($feesType->name);
return view('feestype.edit',['feesType'=>$feesType]);
}
在这里,我已经转储了$ feesType对象,但是得到了一个空值。请帮助我如何解决此问题。 预先感谢
答案 0 :(得分:1)
路由模型绑定的工作原理有些不同,这里是documentation
您需要做的是这样的路线:
Route::get('feestype/{feesType}/edit', 'YourController@edit')->name('feestype.edit');
然后您认为
<a href="{{ route('feestype.edit', $feesType) }}" class="btn btn-info btn-sm">Edit</a>
-编辑
使用资源文件:
Route::resource('feestype', 'YourController')
链接的构建方式与上面相同:
{{ route('feestype.edit', $feesType) }}
答案 1 :(得分:1)
您应该将路线更改为:
Route::put('feestype/{id}/edit', 'YourController@edit');
对于更新和编辑,应使用put not get。
请注意,此代码:
<a href="/feestype/{{ $feesType->id }}/edit" class="btn btn-info btn-sm">Edit</a>
首先,您应该在YourController中压缩$ feestype,然后在Blade中使用您的代码。
答案 2 :(得分:0)
现在刀片文件中的代码是
<a href="{{ route('feestype.edit',$feesType) }}" class="btn btn-info btn-sm">Edit</a>
控制器文件包含以下代码:
public function edit(FeesType $feesType)
{
//
$feesType = FeesType::find($feesType->id);
dump($feesType->name);
return view('feestype.edit',['feesType'=>$feesType]);
}
这是我的路线定义:
Route::resource('feestype','FeesTypesController');
浏览器显示以下消息: enter image description here
答案 3 :(得分:0)
FeesType {#283 ▼
#fillable: array:2 [▶]
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: []
#original: []
#changes: []
#casts: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#guarded: array:1 [▶]
}