Laravel:从数据库中检索模型

Posted

技术标签:

【中文标题】Laravel:从数据库中检索模型【英文标题】:Laravel: Retrieve models form database 【发布时间】:2021-01-18 21:13:29 【问题描述】:

我试图弄清楚如何从数据库中检索模型,但是我只得到数组和 stdClasses。谁能给点建议?

$queryBuilder = DB::table(Note::TABLE);
$dto->applyPaginationRules($queryBuilder);
dd($queryBuilder->get());

我研究过的另一种方法是使用模型从数据库中检索模型,但是似乎没有办法在检索所有信息之前应用过滤器

Note::all();

【问题讨论】:

【参考方案1】:

Laravel Eloquent 模型应该让您在处理数据库时以读取或写入的方式轻松工作。

您可以参考本节来熟悉不同的方法,这些方法可用于构建查询条件 [用于过滤] 或其他内容(例如分页)。 https://laravel.com/docs/8.x/queries

例如,如果您有 Eloquent 模型注意,您可以按如下方式构建查询 [取决于表列]:

Note::query()->where('title','=','some title')
->where('created_at','>',$now)
->orderBy('title')
->get()

必须在最后调用 get() 方法才能执行构建的查询并返回记录的集合。

【讨论】:

【参考方案2】:

我不确定我是否明白你的意思。

您有一个名为“Note”的模型,您可以使用以下方法获取存储在数据库中的所有笔记

Note::all()

如果您想对该查询应用条件,您可以这样做:

Note::where('column_name', '=' , 'value')->get();

如果你想在每个对象上使用一个方法,你可以这样做:

//get notes with a conditaion
$notes = Note::where('column_name', '=' , 'value')->get();

foreach($notes as $note)
    $note->MethodName();

【讨论】:

我的模型上没有静态 where 函数。 试试:Note::query()->where('column_name', '=' , 'value')->get();

以上是关于Laravel:从数据库中检索模型的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 从刀片视图中的模型关系中检索属性

使用自定义连接检索模型时,Laravel出错

Laravel Eloquent - 从相关模型中检索特定列

使用 JSON 解码 Laravel 检索特定数据

从 Laravel 中的关系中检索关系

当主键为 varchar 时,无法从 Laravel 的 Eloquent 中检索列值