第二次将数据从控制器传递到刀片时,我得到了不确定的变量。
使用Laravel 5.8,我的MyController中有两个动作/方法。我必须从控制器传递数据才能查看。第一个动作正常(MyController @ action1-> Blade1),但是第二个失败(MyController @ action2-> Blade2)。
MyController:
public function action1()
{
...
$varialbe1 = ... // everything set correctly here and got it in blade1
return view('blade1', compact('variable1'));
}
public function action2(Request $request)
{
...
$association = $request->input('association');
return view('blade2', compact('association'));
}
刀片1
<form method="POST" action="{{ route('route2') }}">
@csrf
<div class="form-group row">
<label for="association" class="col-md-4 col-form-label text-md-right">{{ __('Association') }}</label>
<div class="col-md-6">
<select required="required" id="association" class="form-control" name="association">
<option></option>
@foreach ($variable1 as $key => $val)
<option value="{{ $key }}">{{ $val->id }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group row mb-0">
<div class="col-md-8 offset-md-4">
<button type="submit" class="btn btn-primary">
{{ __('Submit') }}
</button>
</div>
</div>
</form>
路线
Route::post('/route2', 'MyController@action2')->name('route2');
刀片2(未定义变量:关联)
{{ $association }}
我尝试了不同的方法来获取MyController中的数据,以及尝试将数据传递给Blade2(也可以与action1配合使用),
$association = Input::get('association');
return redirect()->to('/route2')->with('association', $association); // where route2 load the view
答案 0 :(得分:0)
我的路由文件似乎很好(上一篇文章中的MyController = LoginController)。这是我的route / web.php:
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::post('/route2', 'Auth\LoginController@action2')->name('route2');
答案 1 :(得分:0)
从另一个论坛解决。 应该将操作方法添加到中间件中的异常方法列表中,如下所示:
$this->middleware('guest')->except(['logout', 'action']);
由于控制器在构造函数中具有以下中间件:
$this->middleware('guest')->except('logout');
如果用户已经登录(在这种情况下),他们将被重定向到/ home,并且永远不会到达控制器方法。