首页 > 解决方案 > 是bug laravel,还是什么?hasMany 返回空数组

问题描述

我不知道这里有什么问题,它只是返回空数组。

汽车表(Brio、Xpander、Lancer、Jazz)

Schema::create('cars', function (Blueprint $table) {
    $table->mediumIncrements('car_id');
    $table->string('Model', 255);
    $table->unsignedTinyInteger('brand_id')->nullable();
    $table->foreign('brand_id')->references('brand_id')->on('brands');
    $table->charset = 'utf8mb4';
    $table->collation = 'utf8mb4_unicode_ci';
});

品牌表(本田、丰田、铃木、雷克萨斯)

Schema::create('brands', function (Blueprint $table) {
    $table->tinyIncrements('brand_id');
    $table->string('brand_name', 100);
    $table->charset = 'utf8mb4';
    $table->collation = 'utf8mb4_unicode_ci';
});

品牌型号

public function cars() {
    return $this->hasMany(Car::class, 'brand_id', 'car_id');

控制器

$collections = Brand::find(1); // Honda

foreach ($collections->cars as $car) {
    echo $car;
} // empty array

但是,如果我将品牌模型中的位置外键切换到第三个参数(car_idbrand_id)。

它返回数组,但通过car_id,这意味着只有 1 辆车返回。如何按品牌型号退车?

标签: laravel

解决方案


推荐阅读