В моем приложении у меня есть несколько моделей: пользователь и профиль. Модель пользователя предназначена только для компаний, мое приложение предназначено только для компаний. Когда пользователь регистрируется, они заполняют только свое имя, адрес электронной почты и пароль. Моя модель имеет столбцы для названия компании, адреса и т. Д. Моя форма профиля не работает; не сохраняя в базе данных. Вот установка:Laravel 5 Отношения не работают?
контроллер для формы:
public function update($company_name)
{
$user = User::whereCompanyName($company_name)->firstOrFail();
$user->fill(Input::all());
$user->save();
flash('You have successfully edited your profile');
return redirect('/');
}
User.php:
public function profile()
{
return $this->hasOne('Profile');
}
profile.php:
protected $fillable = ['company_name', 'company_logo', 'company_founded'];
public function user()
{
return $this->belongsTo('App\User', 'user_id','ID');
}
Форма:
{!! Form::model($user, array('method' => 'PATCH', 'route' => array('profile.update', $user->company_name), 'files' => true)) !!}
{!! Form::hidden('user_id', Auth::user()->id) !!}
// more fields
<div class="form-group">
{!! Form::label('company_name', 'Company Name') !!}
{!! Form::text('company_name', null, ['class' => 'form-control']) !!}
</div>
{!! Form::submit('Update Profile', ['class' => 'btn btn-primary']) !!}
{!! Form::close() !!}
ли я установить отношения правильно? В базу данных ничего не сохраняется.
предоставить нам некоторый код из ваш контроллер. – mininoz
@mininoz только что поняли. Он обновляется – Sylar
Также не забудьте изменить 'profile()' внутри User.php: 'return $ this-> hasOne ('App \ Profile');' – JasonK