【问题标题】:Laravel's model::all() method is not workingLaravel model::all() 方法不起作用
【发布时间】:2014-12-31 15:06:45
【问题描述】:

当我尝试返回 Example::all() 时,我得到一个空白屏幕并且没有错误。如果我返回 Example::with('id') 我会在数据库中获得所有 15102 条记录。

以前有人遇到过这种情况吗?我不知道为什么/如何它不适用于这个特定的模型。

我的模型在 models/Example.php 中定义为

<?php

class Example extends Eloquent {
    protected $table = 'example';

}

【问题讨论】:

  • 你能把你的模型代码贴在这里看看吗。
  • 使用get() 而不是all()
  • @Marwelln get() 实际上什么也没返回。如果我使用它,网页就会出错。我的印象是 get() 仅在查询后使用,例如 Model::where(where_query)->get();另外,这仍然不能解决我遇到的问题 all();
  • 您的调试代码是什么样的?你如何确定Example::all()Example::with('id') 的结果。作为参考,get()all() 方法将返回一个集合,而 with() 方法将返回一个 Builder 对象。
  • 我只是用 var_dump 和/或 print_r 转储到屏幕上。 all() 绝对没有给我任何东西。只是一个空白的白色屏幕,没有错误,日志中没有任何内容。然而,我现在确实让 all() 工作了一点。我必须指定要提取的字段。如果我不通过任何东西,它就会失败。现在我正在请求 6 个字段并且它正在工作。我相信这只是返回的数据过多的问题。

标签: laravel laravel-4 eloquent


【解决方案1】:

我认为Model 可能是 Laravel 中的保留类名,它有一个抽象类:

http://laravel.com/api/4.2/Illuminate/Database/Eloquent/Model.html

尝试将模型文件名和类命名为其他名称。

【讨论】:

  • 有趣的是,通过扩展 Eloquent,OP 实际上是在扩展 Illuminate\Database\Eloquent\Model,因为 Eloquent 只是该类的别名。
  • 对不起,我应该说它实际上并不称为模型,这只是为了说明目的。我更新了问题以解决任何困惑。
【解决方案2】:

根据我的经验,我注意到有时看起来它什么也没做,但实际上它已经做了。我的一个项目中有以下代码:

    $homeslides = Home::all();
    foreach ($homeslides as $object) {
        $model['image'] = 'images/fullview/'.$object->image;
        $model['title'] = '<h2>'.$object->title.'</h2>';
        $model['thumb'] = 'images/thumbview/'.$object->thumbnail;
        $model['url'] = URL::to('models/'.$object->id);
        $models[] = $model;
    }

如果我 dd($models) 我得到了想要的结果,但是当我 dd($homeslides) 我真的很担心。

【讨论】:

    【解决方案3】:

    没有人回答您的问题。我得到了同样的行为,这就像你猜到的“结果太多”的问题。

    我不知道为什么没有记录错误(默认在 storage/logs/laravel.log 中或在调试模式下显示给用户),这将是预期的行为。

    就我得到数千个结果而言,我只是对我的模型执行了一个“限制”并且效果很好(Laravel 8)。

    $results = Example::limit(100)->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-05
      • 2020-08-18
      • 1970-01-01
      • 2016-05-16
      • 2019-01-31
      • 2016-04-06
      • 1970-01-01
      • 2016-11-26
      相关资源
      最近更新 更多