Laravel: создание отношения morphs () - PullRequest
2 голосов
/ 24 февраля 2020

Я хочу создать отношение полиморфизма один к одному c, разрешающее нулевое отношение.

Пример:

  Schema::create('ps_assistances', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('assistance_number', 50)->nullable();
            $table->morphs('assitanceable')->nullable();
  });

Но этот пример возвращает нулевое значение при задании "-> nullable () "для преобразования столбца.

Я пытаюсь создать _type и _id вручную, и он работает нормально.

Пример с изменяемым вручную столбцом:

  Schema::create('ps_assistances', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('assistance_number', 50)->nullable();
            $table->string('assitanceable_type')->nullable();
            $table->unsignedBigInteger('assitanceable_id')->nullable();
  });

Я хочу знать, существует ли лучший способ сделать отношение один-к-одному полиморфом c обнуляемым.

1 Ответ

1 голос
/ 24 февраля 2020

nullableMorphs должен справиться с этим для вас

например:

Schema::create('ps_assistances', function (Blueprint $table) {
    $table->bigIncrements('id');
    $table->string('assistance_number', 50)->nullable();
    $table->nullableMorphs('assitanceable');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...