在 Laravel 中编写数据库查询的最佳位置是什么?
在 Controller 中还是在模型中?
请告诉我哪种方式是正确的:
在这样的 Controller 中使用?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use DB; // <--------
use App\Http\Requests;
use App\Http\Controllers\Controller;
class UsersController extends Controller
{
public function getUser()
{
return DB::table('users')->where('name', 'John')->value('email');
}
}
在这样的模型中使用?
<?php
namespace App\Models;
use DB; // <--------
use Illuminate\Database\Eloquent\Model;
class UsersModel extends Model
{
protected $table = 'users';
public function getUser()
{
return DB::table('users')->where('name', 'John')->value('email');
}
}
或者以上都不是?
最佳答案
从学术上讲,最好只将所有基于数据的逻辑保留在模型中。但在实践中,将简单查询保留在 Controller 中并使用 scopes 更方便。对于重复的东西。在这种情况下,您的代码可读性更高且更易于维护。此外,所有 Laravel 书籍都建议相同。
无论如何,它更基于意见。
关于database - Laravel 使用数据库 : where does it need to be placed? 在模型中还是在 Controller 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938163/