我在尝试加载blade.php时遇到此错误
Action App\Http\Controllers\InventoryItemController@change not defined.
我在InventoryItemController中有更改功能
public function change($new_status)
{
//
}
当我想制作按钮
时就开始了<a href="{{action('InventoryItemController@change', $inventoryitem['new_status'])}}"class="btn btn-info">Confirm Change</a>
当我按下“编辑”按钮并且该按钮正常工作时,我做了一切。
更新1
我的按钮现在看起来像这样
<a href="{{route('change', [$inventoryitem['new_status'],
$inventoryitem['asset_id']])}}"class="btn btn-info">Confirm Change</a>
我的改变功能就是这个
public function change($new_status, $asset_id)
{
$asset = Asset::find($asset_id);
$asset->status = $new_status;
return redirect('showasset', compact('asset','asset_id'));
}
我在网上的路线是这样的
Route::get('change/{$new_status}/{$asset_id}','InventoryItemController@change')->name('change');
但是在点击按钮之后它只是将我重定向到url ... / change / 4/1就是这样。什么都没有改变。
答案 0 :(得分:3)
在Laravel中不推荐使用Action
您可以改用路线。
在路线文件(/routes/web.php)中定义路线,例如。
Route::get('change/{status}','InventoryItemController@change')->name('change');
然后在你的视图中
<a href="{{route('change', $inventoryitem['new_status'])}}"class="btn btn-info">Confirm Change</a>
在您的控制器中使用。
public function change ($status){
// rest of the function.
}
希望这有帮助
答案 1 :(得分:1)
在路径文件中定义控制器的方法如下:
路线::得到(&#39; URL / {NEW_STATUS}&#39;,InventoryItemController @变化);
在UPDATE 1上回答
public function change($new_status, $asset_id)
{
$asset = Asset::find($asset_id);
$asset->status = $new_status;
$asset->save();
return view('your_view_path',compact('variable1','variable2'));
}
答案 2 :(得分:0)
最终错误在我的路线中
Route::get('change/{$new_status}/{$asset_id}','InventoryItemController@change')->name('change');
应该是这样的
Route::get('change/{new_status}/{asset_id}','InventoryItemController@change')->name('change');
在那之后,一切都在完美无缺地运作。谢谢你的帮助!