我加载注册页面的路由是
Route::get('join/{mobileNumber}', 'JoinController@index');
提交表格时有没有办法传递变量"手机号码"?我可以在表单中创建隐藏输入,但这是否是进一步传递变量的最佳方式?
是的,将变量从索引方法传递到视图:
路线.php
Route::get('join/{mobileNumber}', 'JoinController@getJoin');
Route::post('join/{mobileNumber}', 'JoinController@postJoin');
连接控制器
<?php
# ...
public function getJoin($mobileNumber)
{
# ...
return view('mobile_join', compact('mobileNumber'));
}
public function postJoin($mobileNumber, RegisterRequest $request)
{
$user = new User();
$username = $request->input('username');
$user->password = bcrypt($request->input('password'));
$user->email = $request->input('email');
$user->phone = $mobilePhone;
$user->is_active = 0;
$user->save();
# or
$data = $request->only(['username', 'email']);
$data['phone'] = $mobilePhone;
$data['password'] = bcrypt($data['password']);
$data['is_active'] = 0;
$user = User::create($data);
# ...
redirect()->route('...');
}
用户.php - 型号
protected $fillable = ['username', 'email', 'phone', 'password', 'is_active'];
mobile_join.刀片.php
<form action="/join/{{ $mobileNumber }}" method="post">
{!! csrf_field() !!}
<!-- ... -->
</form>
HTTP 1.1 支持两种方法,GET 和 POST,我们通过 POST 发送表单数据,并通过 GET 传递手机号码。Laravel使用正则表达式从URL中提取字符串并设置变量。