【问题标题】:Laravel Eloquent Model Give Me Error When I Tried to Use all() Function当我尝试使用 all() 函数时,Laravel Eloquent 模型给了我错误
【发布时间】:2019-01-30 03:57:19
【问题描述】:

我创建了一个posts 表,并使用php artisan make:model Post 创建了一个Post 模型。

php artisan make:migration create_posts_table --create="posts"

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    //
}

当我尝试使用 model::all() 获取所有记录时...

route::get('/find', function (){
    return var_dump(App\Post::all());
});

它总是给我这个错误。

Symfony\Component\Debug\Exception\FatalThrowableError (E_ERROR) 不支持的操作数类型。

有人可以帮帮我吗?

问题是由 App\Post::all() 引起的,但我不知道为什么

【问题讨论】:

  • 请包括您对posts的迁移。
  • 2 件事。 1: 你为什么要回复var_dump()? 2. 你怎么能指望Post::all() 给出Post 表结果而不在模型中提及表名?
  • 显示的错误仅仅是因为您尝试回显数组,这是不可能的。 echo 只支持字符串。你只需做 var_dump() 来调试你的结果。
  • 使用 dd(\App\Post::all())

标签: php database laravel eloquent


【解决方案1】:

这是一个关于在 Laravel 5.7 中使用 PHP 7.3 或 7.3.1 时 Xdebug 的错误。

临时解决方法包括:

- Disable php-xdebug on PHP 7.3.0*
- Disable OPCache (opcache.enable=0 on php.ini, then restart PHP services) 
- Set opcache.optimization_level=0x7FFFBBFF

更多信息在这里:https://github.com/laravel/framework/issues/27030

【讨论】:

    【解决方案2】:

    将你的表名初始化到你的模型中......

    class Post extends Model
    {
      protected $table = 'posts';
    }
    
    route::get('/find', function (){
    return dd(\App\Post::all());
    });
    

    【讨论】:

      【解决方案3】:

      感谢 Jonas Staudenmeir 的评论。这是 laravel 5.7 版的问题。而且还没有修复

      我重新安装了 laravel 5.5,效果很好!!!

      【讨论】:

        猜你喜欢
        • 2017-09-15
        • 2023-03-22
        • 2015-09-20
        • 2022-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-10
        相关资源
        最近更新 更多