Laravel更新请求验证如何获取id

smdnsysy  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(180)

我正在使用Laravel 5.2,我已经成功地为我的用户设置了正确的更新请求,但是当我为另一个表(集群)做同样的事情时,我无法在clusterrequest验证中获得id。
以下是我的集群:路线:

Route::post('clusterFormUpdate/{id}', ['uses'=>'ClusterController@postFormUpdate','middleware' => ['permission:user-edit']]);

控制器:

public function postFormUpdate(ClusterUpdateRequest $request, $id)
{
    $inputs = $request->all();

ClusterUpdateRequest:

...
public function rules()
{

    $id = $this->id;
    dd($id);

    return [
        'name'      => 'required|max:255|unique:clusters,name,' . $id . ',id',
        'countries' => 'required',
    ];
}

当我运行这个时,我得到null。
如果我对我的用户表尝试同样的方法,我得到的id打印正确,所以我想知道在哪里可以找到这个问题?
谢谢

iqih9akk

iqih9akk1#

要获取Request中的id,可以使用route()方法:

public function rules()
{
    $id = $this->route('n'); //or whatever it is named in the route
    
    return [ 
        'name'      => 'required|max:255|unique:clusters,name,' . $id . ',id',
        'countries' => 'required',
    ];
}
6jjcrrmo

6jjcrrmo2#

1.你在终端运行'php artisan route:list'
1.查看列表项PUT/PATCH方法,查看route/url中的参数,如:用户/{user}
1.$id = $this->$user(其中$user是路由中的{user})

  1. write rules 'name' => 'unique:users,name,' .$id,

相关问题