gpt4 book ai didi

laravel - 从 Controller 查询数据库还是在 laravel 中使用模型函数更好?

转载 作者:行者123 更新时间:2023-12-05 04:11:33 25 4
gpt4 key购买 nike

目前我在我的 Controller 中使用以下代码来查询数据库。此代码检查用户是否已设置其用户名。

$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 结构化项目应该有“胖模型”和“瘦 Controller ”。这是“业务逻辑”,所以应该在模型中。如果是这样,您能否举例说明我如何将其移动到模型并从 Controller 调用该函数。

最佳答案

您绝对应该将所有与数据相关的代码移到模型中。你问了一个例子。我将在模型中创建此方法:

public function findByEmail($email)
{
return $this->where('email', $email)->first();
}

在 Controller 中:

use App\User;

protected $user;

public function __construct(User $user)
{
$this->user = $user;
}

public function showSomething($userdata)
{
return view('some.view', [
'user' => $this->user->findByEmail($userdata['email'])
]);
}

在 View 中:

{{ empty($user->username) ? 'Hello anonymous' : $user->username }}

在这个例子中,在模型中移动查询看起来不是一个好主意,但是当您的应用程序增长时,您会发现这是处理数据的唯一好方法。这是MVC。此外,您应该在 Request 类中保留验证逻辑,在它们自己的类中保留业务逻辑等。

关于laravel - 从 Controller 查询数据库还是在 laravel 中使用模型函数更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42563181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com