在Laravel 4中保存具有多个外键的模型
我知道,为了保存外键,应该使用相关的模型和在Laravel 4中保存具有多个外键的模型,laravel,laravel-4,save,eloquent,belongs-to,Laravel,Laravel 4,Save,Eloquent,Belongs To,我知道,为了保存外键,应该使用相关的模型和associate()函数,但这样做真的值得吗 $user = new User([ 'name' => Input::get('name'), 'email' => Input::get('email') ]); $language = Language::find(Input::get('language_id'); $gender = Gender::find(Input::get('gender_id'); $ci
associate()
函数,但这样做真的值得吗
$user = new User([
'name' => Input::get('name'),
'email' => Input::get('email')
]);
$language = Language::find(Input::get('language_id');
$gender = Gender::find(Input::get('gender_id');
$city = City::find(Input::get('city_id');
$user->language()->associate($language);
$user->gender()->associate($gender);
$user->city()->associate($city);
$user->save();
什么时候可以简单地做到这一点
User::create(Input::all());
我觉得我在这里遗漏了一些东西,也许有一种更简单、更干净的方法来处理控制器(和视图)中的外键?我真的看不出做
User::create(Input::all())有什么错代码>
显然你需要一些验证,但它也在做同样的事情
我认为associate()
方法对于与您的情况相反的情况更有用
例如,假设您有一个表单,用户可以填写该表单将其城市添加到您的应用程序中,这样做后,他们应该自动分配到该城市
$city=city::create(Input::all())
将只满足您需求的前一半,因为城市没有用户id
列,因此该用户尚未连接
然后需要执行类似于$city->user()->associate(user::find(Auth::user()->id))代码>您可以改用push()方法,它将允许您推送到相关模型
此链接应回答您的问题。
感谢您的输入,当然需要验证,但这两种情况都需要验证,所以我不是故意的。也许你是对的,在你的场景中,associate()有更多的意义,但我想我对L4做得还不够,还不知道什么时候associate()
会派上用场。我愿意让这个问题公开,看看是否有人提出了更好的解释/想法。干杯