/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Integration/Database/EloquentMorphLazyEagerLoadingTest.php
73 строки
2 KB
Mior Muhammad Zaki
[10.x] Streamline `DatabaseMigrations` and `RefreshDatabase` events (#49153)
28 ноя 2023, 18:22
Не верифицирован
28 ноя 2023, 18:22
1e03a4a
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Integration\Database\EloquentMorphLazyEagerLoadingTest; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; use Illuminate\Tests\Integration\Database\DatabaseTestCase; class EloquentMorphLazyEagerLoadingTest extends DatabaseTestCase { protected function afterRefreshingDatabase() { Schema::create('users', function (Blueprint $table) { $table->increments('id'); }); Schema::create('posts', function (Blueprint $table) { $table->increments('post_id'); $table->unsignedInteger('user_id'); }); Schema::create('comments', function (Blueprint $table) { $table->increments('id'); $table->string('commentable_type'); $table->integer('commentable_id'); }); $user = User::create(); $post = tap((new Post)->user()->associate($user))->save(); (new Comment)->commentable()->associate($post)->save(); } public function testLazyEagerLoading() { $comment = Comment::first(); $comment->loadMorph('commentable', [ Post::class => ['user'], ]); $this->assertTrue($comment->relationLoaded('commentable')); $this->assertTrue($comment->commentable->relationLoaded('user')); } } class Comment extends Model { public $timestamps = false; public function commentable() { return $this->morphTo(); } } class Post extends Model { public $timestamps = false; protected $primaryKey = 'post_id'; public function user() { return $this->belongsTo(User::class); } } class User extends Model { public $timestamps = false; }