Если вы намереваетесь использовать $message = new Message( array(
и остальные getData
(кроме перенаправлений) на всех других get*
методах / действиях в вашем классе Controller, то вы можете переместить блок кода $message = new Message( array(
в private
метод, подобный этому:
private function getDataHelper(Request $request)
{
$message = new Message([
'title' => $request->get('title'),
'description' => $request->get('description'),
'branch_id' => Auth::user()->branch_id,
'user_id' => Auth::user()->id
]);
return $message->save();
}
Затем вы просто переопределяете структуру ваших public get*
методов:
public function getProducts(Request $request)
{
return $this->getDataHelper($request);
}
public function getCustomer(Request $request)
{
return $this->getDataHelper($request);
}
public function getShop(Request $request)
{
return $this->getDataHelper($request);
}
Возможно, не самый эффективный способ, но он сделает свою работу. Возможно, вы захотите удалить return
в public get*
методах.
EDIT:
Или, если вы хотите выполнить условное перенаправление на основе параметров title
или description
из вашего запроса, вы можете сделать следующее, сохранив большую часть кода:
private function getDataHelper(Request $request)
{
$message = new Message([
'title' => $request->get('title'),
'description' => $request->get('description'),
'branch_id' => Auth::user()->branch_id,
'user_id' => Auth::user()->id
]);
$title = $request->get('title');
$description = $request->get('description');
if($title === 'products' || $description === 'products') {
return redirect('getproducts');
}
if($title === 'customer' || $description === 'customer') {
return redirect('getcustomer');
}
if($title === 'shop' || $description === 'shop') {
return redirect('getshop');
}
// otherwise redirect home
return redirect('/');
}
Обратите внимание, что я догадался, что условия для правильного перенаправления.