1

Laravel 4 で単純なルートを作成すると、where を使用して各パラメーターの正規表現を設定できます。URI で渡されます。例えば:

Route::get('users/{id}',function($id){
    return $id;
})->where('id','\d+');

すべての get リクエストの 2 番目のパラメーター。数字でなければなりません。リソースを作成するときに問題が発生します。これを使用する->where()と、これはオブジェクトではないというエラーがスローされます。

3番目のパラメーターとして配列として、グループにどこを配置しようとしました。リソースにあるのですが、機能していません。Laravel 4 リソースの機能を備えた正規表現の機能をどのように使用できますか?

4

1 に答える 1

0

彼ジョス、

私も同じ質問で頭がおかしくなったので、調べてみました。私が到達できるのは、次の結論だけです。このメソッドは必要ありません。各コントローラ メソッドでは、各引数の後にデフォルト値を指定できます。

public function getPage(id = '0', name = 'John Doe'){

これに続いて、正規表現チェックを実行できます。また、次のように laravel バリデーターを使用して他の多くのチェックを実行できます。

        //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のオプションリストに含まれているため、正規表現チェックは必要ないかもしれません. ただし、これはオプションです (regex:pattern)。

コントローラーに where() メソッドが存在しないことの背後にある私の理論は、メソッドが Route ファイル内で検証を行う機会を提供するということです。コントローラーには既にこの可能性があるため、その必要はありません。

于 2014-03-12T10:18:48.793 に答える