使用Laravel 5.1创建带有新字段的注册表单

3
我正在创建一个推荐系统,因此我有以下路由:
// Registration routes...
Route::get('auth/register/{id}', 'Auth\AuthController@getRegister');
Route::post('auth/register', 'Auth\AuthController@postRegister');

我的RegisterUser.php已经被更改为:

public function getRegister($id)
{
    return view('auth.register')->withName($id);
}

我的刀锋看起来像

<div class="form-group">
    <label class="col-md-4 control-label">Company</label>
    <div class="col-md-6">
        <input type="text" class="form-control" name="company" value="{{ old('company') }}" readonly disabled>
    </div>
</div>

在 AuthController 中,我有以下代码:
protected function create(array $data)
{
    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'company' => $data['company'],
        'password' => bcrypt($data['password']),
    ]);
}

问题出在value="{{ old('company') }}"这段代码上。虽然这样写可以让它工作,但我希望将值设置为value="{{$name}}",并从return view('auth.register')->withName($id);获得。当我去到路由auth/register/something时,在输入框中我已经得到了“something”,因此它是有效的,但我却收到错误代码"Undefined index: company"。当我完全删除该值时,它可以正常工作,但我需要这个值。有任何建议都将非常有帮助。


请检查此解决方案是否适合您。 - Yehia Awad
1个回答

1
你的代码问题在于输入框 "company" 中的 disabled 属性,为什么呢?因为禁用元素不可编辑且不会在提交时发送,所以 Laravel 无法接收它,但你可以通过 helpers 的 old 方法来访问它。
移除 disabled 属性即可解决问题。
<input type="text" class="form-control" name="company" value="{{ old('company') }}" readonly >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接