可以说,如果我将函数放入控制器或模型中,则我创建了一个名为activateAuction的自定义函数。如果将其放在控制器中,我将在控制器中编写整个功能。如果将函数放入模型中,则将从控制器中调用函数。我想编写简洁的代码哪种方法正确?
答案 0 :(得分:0)
控制器收到Request
并返回Response
。那是他们唯一的工作。让他们保持瘦。瘦控制器和胖模型。我不知道activateAuction
的作用。也许应该在Repository
中。
答案 1 :(得分:0)
确保不必将其放置在控制器中,将其保留在模型中或考虑使用存储库模式,这将使您的代码保持整洁。
答案 2 :(得分:0)
Controller
仅应负责接收请求并做出响应。它将验证并转换将参数传递给函数的请求到代码中的某处。
您可以使用Repository Pattern,也可以只放入模型。
您可以开始在Controller
中编写代码,但是当发现它很冗长或代码变得越来越复杂时,
重复的。您可以重构代码并使它们成为函数,然后在Controller
中调用该函数。
示例:
class UserController {
...
public function eatCake(Request $request, Cake $cake) {
// Validate Request
$data = $this->validate($request, [
'portion' => 'required|numeric',
]);
// pass params
Auth()->user()->eat($cake, $data['portion']);
// Respond to user
return response('OK');
}
}
class User extends Authenticatable {
...
public function eat(Cake $cake, $portion) : Consume
{
// Your logic
return $this->consumes()->create([
'cake_id' => $cake_id,
'portion' => $portion
]);
}
}