現在、コントローラに次のコードを使用してデータベースにクエリしています。このコードは、ユーザがまだユーザ名を設定しているかどうかをチェックします。laravalのコントローラまたはモデル関数を使用してデータベースを照会する方が良いですか?
$user = User::where('email', $userdata['email'])->first();
if(empty($user->username)){
echo 'Set username here...';
} else {
echo 'My home page!';
}
私の質問は、それがこれを行うにはUser
モデルで機能させるか、それがあるとして、それを維持することをお勧めしています。たとえば、最初の行が削除され、if文でtrueまたはfalseを返すモデル関数が呼び出されます。
私の最初の考えは、MVC構造化プロジェクトは「太ったモデル」と「スキニーコントローラ」を持つべきであるため、モデル関数に移動する必要があるということです。これは「ビジネスロジック」なので、モデルに含める必要があります。もしそうなら、これをモデルに移動してコントローラから関数を呼び出す方法の例を挙げてください。
public function hasUsername()
{
if($this->username)
{
return true;
}
return false;
}
とあなたのコントローラにあなたが言うことができる:
$user = User::where('email', $userdata['email'])->first();
if($user->hasUsername())
{
// do somethin
}
など、要求のクラスで独自のクラスのビジネスロジックを検証ロジックを維持する必要があります。 –
@AlexeyMezeninあなたが私がこれをやる方法の例を教えてください、私が見たほとんどの例は、コントローラー内のすべての「ビジネスロジック」を行っていました。 – JL9