我有一个单页表格,需要将数据保存到2个表格 - 公司和用户。公司有很多用户,用户有一家公司:
public function company()
{
return $this->hasOne('Company');
}
表单相当广泛,所以我必须减少下面的代码!
表格包含在:
中{{ Form::open(array('url'=>'users/create', 'class'=>'form-horizontal', 'role'=>'form', 'files'=>'true')) }}
{{ Form::close() }}
表单使用用户的控制器保存数据:
public function postCreate(){
$validator = Validator::make(Input::all(), User::$rules);
if($validator->passes()){
$user = new User;
$user->firstname = Input::get('firstname');
$user->surname = Input::get('surname');
$user->phone_number = Input::get('phone_number');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->save();
$company = new Company;
$company->company_name = Input::get('company_name');
$company->address_1 = Input::get('address_1');
$company->town = Input::get('town');
$company->postcode = Input::get('postcode');
$company->phone_number = Input::get('phone_number');
$company = Company::create(['logo' => Input::file('logo')]);
$company->approved = '0';
$company->save();
我的问题是,所有$ user变量都保存正确。要保存的唯一$ company变量是'approved'和'logo'变量。 company_name,address_1等...不会保存到数据库中!
保存的文本字段形式的示例是:
<div class="form-group">
{{ Form::label('surname', 'Surname', array('class'=>'col-sm-4 control-label')) }}
<div class="col-sm-8">
{{ Form::text('surname', null, array('class'=>'form-control', 'placeholder'=>'Surname')) }}
</div>
</div>
这个没有(但它通过验证'必需'?!):
<div class="form-group">
{{ Form::label('Company Name', 'Company Name', array('class'=>'col-sm-4 control-label')) }}
<div class="col-sm-8">
{{ Form::text('company_name', null, array('class'=>'form-control', 'placeholder'=>'Company Name')) }}
</div>
</div>
我有点困惑为什么2/7将保存在公司表中,而不是其他5!任何帮助将不胜感激。
答案 0 :(得分:0)
这是您的问题,您在重新分配 $ company 模型之前将其保存在此行中:
$company = Company::create(['logo' => Input::file('logo')]);
应该是:
$company->logo = Input::file('logo');