【问题标题】:How to access route parameter in custom validation rule laravel如何在自定义验证规则 laravel 中访问路由参数
【发布时间】:2017-06-14 14:32:22
【问题描述】:

如何在自定义验证规则中访问路由参数

这是我的代码:

路线:

http://api.example.com/users/{user_id}/update
Route::post('users/{user_id}/update', 'UserController@update')->name('user:update');

我的自定义验证规则:

namespace App\Validators;

use Illuminate\Validation\Validator;

class Validators extends Validator
{
    public function __construct($translator,$data,$rules,$messages=[],$customAttributes=[])
    {
        parent::__construct($translator,$data,$rules,$messages,$customAttributes);
    }

    public function validateRole($attribute, $value, $rules)
    {
        // here I want to access the route parameters

        $user_id = $this->route('user_id');
    }
}
namespace App\Api\V1\Requests\SectionMilestone;

use App\Api\ApiRequest;

class SectionMilestoneRequest extends ApiRequest
{
    public function rules()
    {
        return [
            'teacher_id'    => 'required|role:school'
        ];
    }
}

如果有人知道如何做到这一点,请帮我节省一些时间。

感谢任何帮助。谢谢

【问题讨论】:

  • 您能否为此显示您的实际Route

标签: php laravel validation laravel-5.3


【解决方案1】:

您可以直接从请求对象中获取它,也可以使用公共的 request() 函数。

public function validateRole($attribute, $value, $rules)
{

    $user_id = request()->route('user_id');
}

【讨论】:

    猜你喜欢
    • 2015-11-09
    • 2018-07-29
    • 2017-12-01
    • 2017-04-11
    • 2018-02-18
    • 2013-06-21
    • 2014-04-22
    • 2019-02-12
    • 2016-11-22
    相关资源
    最近更新 更多