【发布时间】:2018-11-09 05:50:35
【问题描述】:
当我尝试加载 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 就是这样。没有任何变化。
【问题讨论】:
-
你的路线是什么?使用
route而不是action我的错,不要正确理解你的代码。一般来说,使用路线而不是行动更好。我可以看到控制器(不仅仅是方法)吗?您将控制器文件存储在哪里? -
您传递的参数应该类似于 ['new_status' => $inventoryitem['new_status']] 或类似的东西,具体取决于您的代码
-
@DessaugesAntoine 如果我把路线而不是行动放在同一件事上,路线未定义。控制器文件是每个控制器文件所在的位置,在 app/http/Controllers/
-
@NoOorZ24 我需要传递 new_status 所以在我的更改函数中我可以更改另一个表中某些项目的状态。
-
@Zolak94 只是为了确定。在这种情况下,我们知道查看
$inventoryitem是什么以及您的控制器文件中的更多内容。
标签: laravel controller laravel-blade