Laravel-5.5:如果我在规则中使用,为什么要重定向?' required'?

时间:2018-01-08 09:57:43

标签: php laravel laravel-5.5

我有简单的网络路线。

代码:

let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.EUWest1,
                                                            identityPoolId:"please enter pool id")
    let configuration = AWSServiceConfiguration(region:.EUWest1, credentialsProvider:credentialsProvider)
    AWSServiceManager.default().defaultServiceConfiguration = configuration
    let rekognitionClient = AWSRekognition.default()
    let image = AWSRekognitionImage()
    image!.bytes = UIImageJPEGRepresentation(sourceImages, 0.7)
    guard let request = AWSRekognitionDetectLabelsRequest()
        else {
            puts("Unable to initialize AWSRekognitionDetectLabelsRequest.")
            return
    }
    request.image = image
    request.maxLabels = 5
    request.minConfidence = 90

    rekognitionClient.detectLabels(request) { (response:AWSRekognitionDetectLabelsResponse?, error:Error?) in
        if error == nil {
            print("response ",response)



        }
    }

}

我有简单的方法Route::group(['middleware' => ['web']], function () { Route::group(['prefix' => 'inbox', 'middleware' => 'auth'], function(){ Route::match(['get', 'post'], '/compose', 'InboxController@compose')->name('compose'); }); });

代码:

compose()

和InboxRequest文件。

代码

public function compose(InboxRequest $request)
{   
    return view('compose');
}

我的HTML表单包含字段

public function rules()
{
   return [
      'receiver' => 'required'
   ];
}

3 个答案:

答案 0 :(得分:2)

来自the docs

  

如果验证失败,将生成重定向响应以将用户发送回其先前的位置。

此外,您不应手动在5.5中应用web中间件。

答案 1 :(得分:1)

Laravel 5.5 到已连接的所有路由middleware['web']。如果在路线中已经需要中间件,那么您应该在文件web.php中将路线划分为:POSTGET

Route::group(['prefix' => 'inbox', 'middleware' => 'auth'], function(){
    Route::get('/compose', 'InboxController@compose')->name('compose'); 
    Route::post('/compose', 'InboxController@send')->name('send');
});

HTML表单:

<form role="form" class="form-horizontal" action="{{ route('send') }}" method="POST">
    {{ csrf_field() }}
    <label class="col-lg-2 control-label">To</label>
    <input type="text" placeholder="" id="inputEmail1" class="form-control" name="receiver" value="{{old('receiver')}}">

    <label class="col-lg-2 control-label">From</label>
    <input type="text" placeholder="" id="cc" class="form-control" name="sender" value="{{ Auth::user()->email }}" disabled="">
    <input type="text" placeholder="" id="inputPassword1" class="form-control" name="subject" value="{{old('subject')}}">
    <button class="btn btn-success" type="submit">Send</button>
</form>

在InboxRequest文件中,您设置了authorize() return true;

       /**
         * Determine if the user is authorized to make this request.
         *
         * @return bool
         */
        public function authorize()
        {
            return true;
        }
        public function rules()
        {
           return [
              'receiver' => 'required'
          ];
        }

答案 2 :(得分:0)

我认为你不会发送“接收者”参数进行路由。

InboxRequest是对请求参数的验证,此请求您不发送接收方。

使用get或post接收器数据调用/撰写路由。

示例:/ compose?receiver = test