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

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

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

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

Note::all();

【问题讨论】:

    标签: database laravel model pagination


    【解决方案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();
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 2021-07-06
      相关资源
      最近更新 更多