首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将正则表达式与Laravel 4中的资源一起使用

如何将正则表达式与Laravel 4中的资源一起使用
EN

Stack Overflow用户
提问于 2013-06-02 15:31:50
回答 1查看 775关注 0票数 1

如果我们使用Laravel 4创建一个简单的路由,我们可以使用where为每个参数设置一个正则表达式。传入URI。例如:

代码语言:javascript
复制
Route::get('users/{id}',function($id){
    return $id;
})->where('id','\d+');

对于每个get请求,第二个参数。必须是数字。当我们创建资源时,问题来了,如果我们使用->where(),它会抛出一个关于这不是一个对象的错误。

我试着把where放到一个组中,作为一个数组作为第三个参数。在资源中,但是没有worked.How,我们可以使用正则表达式的功能和Laravel4资源的功能吗?

EN

Stack Overflow用户

发布于 2014-03-12 18:18:49

他的神像,

我被同样的问题弄疯了,所以我做了一些研究。我所能得出的结论是:你不需要这个方法。在每个控制器方法中,您可以在每个参数后指定默认值:

代码语言:javascript
复制
public function getPage(id = '0', name = 'John Doe'){

接下来,您可以使用laravel验证器执行正则表达式检查,以及许多其他检查,如:

代码语言:javascript
复制
        //put the passed arguments in an array 
            $data['id'] = $id;
            $data['name'] = $name;

    //set your validation rules
            $rules = array(
                    "id" => "integer"
                    "name" => "alpha"
        );
            // makes a new validator instance with the data to be checked with the given 
            // rules
    $validator = Validator::make($data, $rules);

            // use the boolean method passes() to check if the data passes the validator
    if($validator->passes()){
            return "stuff";
            } 

            // set a error response that shows the user what's going on or in case of            
            // debugging, a response that confirms your above averages awesomeness

            return "failure the give a response Sire"; 
}

因为大多数验证已经在laravel的options list中,所以您可能不需要正则表达式检查。然而,它是一个选项(regex:pattern)。

在控制器中不存在where()方法的背后,我的理论是该方法为您提供了在Route文件中进行验证的机会。既然你的控制器中已经有了这种可能性,那么就不需要它了。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16880742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档