Laravel 5 HTTP/Requests - 将 url 参数传递给 rules() 方法
Laravel 5 HTTP/Requests - pass url parameter to the rules() method
我正在尝试在新 \HTTP\Requests\UpdateArticle
class 下为 slug
字段创建一组规则,需要应用 unique
过滤器,但是仅当 id
不等于路由名称 article/{article}
.
的 url 参数时
到目前为止我得到的是:
public function rules()
{
return [
'title' => 'required|min:3',
'excerpt' => 'required',
'body' => 'required',
'slug' => 'required|unique:articles,slug,?',
'active' => 'required',
'published_at' => 'required|date'
];
}
我需要用 url 中的 ID 替换 slug
字段的唯一过滤器末尾的问号,但不知道如何获取它。
您可以通过 input()
:
按名称检索路由参数
$id = Route::input('id');
return [
// ...
'slug' => 'required|unique:articles,id,' . $id,
// ...
];
正确there in the docs(向下滚动到访问路由参数值)
从URL获取URL参数:
$this->route('id');
也有人对此进行了很好的讨论。
我正在尝试在新 \HTTP\Requests\UpdateArticle
class 下为 slug
字段创建一组规则,需要应用 unique
过滤器,但是仅当 id
不等于路由名称 article/{article}
.
到目前为止我得到的是:
public function rules()
{
return [
'title' => 'required|min:3',
'excerpt' => 'required',
'body' => 'required',
'slug' => 'required|unique:articles,slug,?',
'active' => 'required',
'published_at' => 'required|date'
];
}
我需要用 url 中的 ID 替换 slug
字段的唯一过滤器末尾的问号,但不知道如何获取它。
您可以通过 input()
:
$id = Route::input('id');
return [
// ...
'slug' => 'required|unique:articles,id,' . $id,
// ...
];
正确there in the docs(向下滚动到访问路由参数值)
从URL获取URL参数:
$this->route('id');
也有人对此进行了很好的讨论