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種型號,這樣我的控制器代碼是太長了(有許多其他函數等)而是我想將這些代碼移到模型中,因爲我的模型到目前爲止只有定義的關係。但是我不完全知道如何從控制器調用模型,我是否必須調用它,否則它會自動執行它?關於如何分割代碼的任何其他想法?
我仍然想更多地使用模型,目前我覺得我沒有使用它的'空間',只爲關係定義它,如果我可以在模型中使用該代碼,有什麼辦法嗎? –