0
我的问题是关于如何分割这段代码。我有一个登记表,它的保存功能是这样的:Laravel控制器,移动创建和更新到模型?
public function store(EntityRequestCreate $request)
{
$geoloc = new Geoloc;
$geoloc->lat = $request->input('lat');
$geoloc->lng = $request->input('lng');
$geoloc->slug = $request->input('name');
$geoloc->save();
$user_id = Auth::id();
$entity = new Entity;
$entity->name = $request->input('name');
$entity->type = $request->input('type');
$entity->email = $request->input('email');
$entity->tags = $request->input('tags');
$entity->_geoloc()->associate($geoloc);
$entity->save();
$entity_id = $entity->id;
$address = new Address;
$address->building_name = $request->input('building_name');
$address->address = $request->input('address');
$address->town = $request->input('town');
$address->postcode = $request->input('postcode');
$address->telephone = $request->input('telephone');
$address->entity_id = $entity_id;
$address->save();
$role = User::find($user_id);
$role->role = "2";
$role->save();
DB::table('entity_user')->insert(array('entity_id' => $entity_id, 'user_id' => $user_id));
$result = $geoloc->save();
$result2 = $entity->save();
$result3 = $address->save();
$result4 = $role->save();
if ($result && $result2 && $result3 && $result4) {
$data = $entity_id;
}
else {
$data = 'error';
}
return redirect('profile/entity');
}
正如你看到的,它有一个自定义的请求,它是保存到3种型号,这样我的控制器代码是太长了(有许多其他函数等)而是我想将这些代码移到模型中,因为我的模型到目前为止只有定义的关系。但是我不完全知道如何从控制器调用模型,我是否必须调用它,否则它会自动执行它?关于如何分割代码的任何其他想法?
我仍然想更多地使用模型,目前我觉得我没有使用它的'空间',只为关系定义它,如果我可以在模型中使用该代码,有什么办法吗? –