【问题标题】:Laravel eloquent all() method gives error "Array to string conversion" [closed]Laravel 雄辩的 all() 方法给出错误“数组到字符串的转换”[关闭]
【发布时间】:2022-01-24 04:34:52
【问题描述】:

我只是想这样做:

$cattles = Cattle::all();
dd($cattles);

但它会抛出异常“ErrorException 数组到字符串的转换”。
我不知道为什么...如果我尝试

$cattles = DB::select('SELECT * FROM cattles');
dd($cattles);

它给出了预期的结果!即所有行。
型号:

class Cattle extends Model
{
    use HasFactory;

    protected $table = ['cattles'];

    protected $fillable = [
        'property_cattle_type_id',
        'property_id',
        'paddock_id',
        'cattle_type_id',
        'age',
        'visual_id',
        'animal_id',
        'sex',
        'weight',
    ];
}

在我看来这很奇怪。 前四列 - 外键。
事实上这对我来说不是什么大问题,但我只是对这种行为感兴趣。

可能是什么原因?

【问题讨论】:

  • 为什么要在 array 中传递表名?它应该是protected $table = 'cattles';
  • @DevsiOdedra ,该死的......是的,你是绝对正确的。我不小心这样写了。这就是问题所在。啊哈哈,真是个愚蠢的错误。非常感谢!

标签: php laravel eloquent model dd


【解决方案1】:

原因是将array 传递给table 变量。 您可以查看 Eloquent table names 的 Laravel 文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 2022-01-05
    • 2017-05-16
    • 1970-01-01
    • 2019-05-01
    相关资源
    最近更新 更多