Eloquent hasMany возвращает пустую коллекцию - PullRequest
0 голосов
/ 01 мая 2020

У меня есть эти 2 модели

class Image extends Model
{

    public function product(){
        return $this->belongsTo(Product::class);
    }

}
class Product extends Model
{
    public function images()
    {

        return $this->hasMany(Image::class, 'product_id', 'id');
    }

}

У меня есть эти 2 таблицы, связанные по product_id

This is my product table
public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('price');
            $table->text('description');
            $table->timestamps();
        });
    }

This is my image table
public function up()
    {
        Schema::create('images', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('product_id');
        $table->string('sm');
        $table->string('md');
        $table->timestamps();

        $table->foreign('product_id')->references('id')->on('products')
        ->onDelete('cascade');
        });
    }

, когда я использую ремесленный тинкер, чтобы проверить его работу, я получаю пустой результат с этим

$ a = новое приложение \ product $ a-> images $ a :: find (1)

, но если я запускаю sql из phpmyadmin

SELECT * FROM products, images where products.id = images.id AND products.id=1

Я получаю результаты, любая помощь приветствуется

>>> $a->find(1)
=> App\Product {#3057
     id: 1,
     title: "1",
     price: "1",
     description: "1",
     pic: "1",
     created_at: null,
     updated_at: null,
   }
>>> $a->images
=> Illuminate\Database\Eloquent\Collection {#3050
     all: [],
   }

1 Ответ

0 голосов
/ 01 мая 2020

Это очень просто

Сначала выполните эту команду. composer dump-autoload

Затем в вашей команде php artisan tinker; вы пишете это

$product = \App\Product::find(1);
$product->images;

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...