отношение morphOne всегда возвращает ноль - PullRequest
1 голос
/ 07 мая 2019

я настраиваю «один на один» (полиморфный), как это

Мои модели:

namespace App;
use Illuminate\Database\Eloquent\Model;
class Payement extends Model{
    protected $table = 'payements';
    protected  $primaryKey = 'id';
    public function payementable(){
        return $this->morphTo();
    }}

class Recu extends Model{
    protected $table = 'recus';
    protected  $primaryKey = 'id';  
    public function payement(){
        return $this->morphOne('App\Payement', 'payementable');
    }}

Схемы моих таблиц

Schema::create('recus', function (Blueprint $table) {
            $table->bigIncrements('id');
        });
Schema::create('payements', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->string('numero')->unique();
            $table->bigInteger('payementable_id');
            $table->string('payementable_type');
            $table->timestamps();
        });

проблема в том, что это работает

App\Payement::find(1)->payementable; 

это возвращаемое значение null

App\Recu::find(1)->payement;

и это возвращаемое пустое собрание

Recu::first()->payement()->get()

1 Ответ

1 голос
/ 07 мая 2019

Представленные вами настройки не имеют проблем.Пожалуйста, проверьте с этими данными:

payements:
---------------------------------------------
|id|numero|payementable_type|payementable_id|
---------------------------------------------
|1 |1     |App\Recu         |2              |
---------------------------------------------

recus:
----
|id|
----
|1 |
----
|2 |
----
|3 |
----
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...