【发布时间】:2021-09-27 14:37:31
【问题描述】:
我将update 的状态编码为category。我在 API 中有一个新功能
控制器,所以当我点击提交时它不起作用。
当我转到 category.update 时,这个问题得到了解决,但我不能,因为该函数用于其他用途。
web.php
Route::patch('category/{$category}', 'Admin\CategoryController@change')
->name('category.change');
Route::resource('category', 'Admin\CategoryController')
->middleware('loggedin');
这是 API 控制器的新功能:
public function change($category, Request $request)
{
$cate = Category::find($category);
if ($cate->category_status == 0) {
$cate->category_status = 1;
$cate->save();
} else {
$cate->category_status = 0;
$cate->save();
}
return back()->with('success', 'Success!');
}
list.blade.php
<form autocomplete="off" action="{{ route('category.change', [$cate->category_id]) }}" method="POST" enctype="multipart/form-data">
@method('PATCH')
@csrf
<button class="fa fa-eye" type="submit"></button>
</form>
【问题讨论】:
-
在您的路线中,$ 符号不是必需的
...patch('category/{category}'... -
@JuanEizmendi 谢谢你,但我有一个新问题是 category.change 未定义,
-
当您将数组传递给 de route 助手时,需要使用参数名称作为键,在这种情况下,是唯一的,因此您可以只传递数字。
route('category.change', $cate->category_id) -
@JuanEizmendi 非常感谢先生。它正在工作
-
@JuanEizmendi 对于具有一个参数的路线,这没有区别。您可以将值作为整数、索引数组或关联数组传递。我刚刚在我的应用程序上测试了
route("users.edit", 23);、route("users.edit", [23]);和route("users.edit", ["user"=>23]);。结果都一样。
标签: php laravel controller laravel-routing laravel-api