Php Laravel表单请求和验证

Php Laravel表单请求和验证,php,laravel,laravel-5,laravel-routing,laravel-validation,Php,Laravel,Laravel 5,Laravel Routing,Laravel Validation,下面是我在控制器(Laravel 5)上对创建/存储和编辑/更新方法使用单表单验证请求的解决方案 这是一个繁琐而丑陋的黑客程序(即,它读取URI段以获取正在编辑的记录的id)。是否有更好的方法确定请求是否从编辑/更新请求接收信息?(不直接向请求传递$id和标志) 如果您遵循正确的restful路由技术,那么您可以使用请求类型,为任何验证提供通用解决方案 public function rules() { if($request()->isMethod('put')) {

下面是我在控制器(Laravel 5)上对创建/存储和编辑/更新方法使用单表单验证请求的解决方案

这是一个繁琐而丑陋的黑客程序(即,它读取URI段以获取正在编辑的记录的id)。是否有更好的方法确定请求是否从编辑/更新请求接收信息?(不直接向请求传递$id和标志)


如果您遵循正确的restful路由技术,那么您可以使用请求类型,为任何验证提供通用解决方案

public function rules()
{
    if($request()->isMethod('put'))
    {
         // Update rules here
    }

    return $this->rules;
}

好的,我已经用谷歌解决了我自己的问题;这里有一个关于这个主题的好资源

以下任何一项都有效(替换上述原始代码中的段id线)

  • $id=$this->route()->parameters()[“companys”]
  • $id=$this->route()->getParameter('companys')
  • $id=$this->route('companys')
  • $id=$this->companies

实际上,您可以直接调用段的名称。这个控制器的路线是什么样的?我将向您展示如何调用它。控制器是一个larvel“资源”,即Route::resource('companys','companyescontroller')@mininozAwesome!使用$this->isMethod('patch')解决了第一个问题-关于如何获取$id有什么想法吗?(从URL段以外的其他地方)我想你可以只做
$request()->id
,因为它是绑定在路由中的?我刚刚阅读了你上面的评论。因为它是一个资源控制器-它可能是
$request()->companiesId
$this->companiesId
,我已经尝试了上述所有方法,它们返回null-控制器没有将id传递给请求?
public function rules()
{
    if($request()->isMethod('put'))
    {
         // Update rules here
    }

    return $this->rules;
}