Ste*_*eve 9 laravel laravel-5.3
我用php artisan make:auth 它生成了寄存器视图和/ register路由.但是我需要将一个变量传递给这个寄存器视图:
<label>Region:</label>
<select name="region" id="region" class="form-control" >
<option>--Select a Region--</option>
@foreach($region as $reg)
<option value="{{$reg->region_id}}">{{$reg->region_name}}</option>
@endforeach
</select><br>
Run Code Online (Sandbox Code Playgroud)
就像是:
public function register()
{
$region=Region::all();
return view('auth.register')->with('region',$region);
}
Run Code Online (Sandbox Code Playgroud)
但这种方法在哪里?
Sar*_*mar 15
你可以通过两种方式实现这一目标.
Laravel的默认身份验证使用RegisterController上的RegistersUsers trait来呈现视图.您可以做的只是覆盖RegisterController上的Illuminate\Foundation\Auth\RegistersUsers上的函数,如下所示
/**
* Show the application registration form.
*
* @return \Illuminate\Http\Response
*/
public function showRegistrationForm()
{
$region=Region::all();
return view('auth.register', compact('region'));
}
Run Code Online (Sandbox Code Playgroud)
现在上面的代码将覆盖该特征并使用来自控制器的showRegistrationForm.
执行此操作时php artisan make:auth,它会将其添加Auth::routes()到您的web.php文件中.删除它并添加以下内容,
// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');
// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Run Code Online (Sandbox Code Playgroud)
现在进行注册,将RegisterController @ showRegistrationForm修改为RegisterController @ register.
但是不要只使用注册.而是像getRegisterForm一样使用.因为寄存器功能处理后置寄存逻辑.
在Laravel Auth:它使用的showRegistrationForm()方法来创建注册页面。因此,我们需要重写该方法。
只是重写showRegistrationForm()方法
public function showRegistrationForm() {
$data = [1, 2, 3, 4];
return view ('auth.register')->withData($data);
}
Run Code Online (Sandbox Code Playgroud)
并使用$data... 捕获注册页面中的数据
| 归档时间: |
|
| 查看次数: |
6769 次 |
| 最近记录: |