Company :: find (1) -> отделы возвращают ноль из проблем отношений - PullRequest
0 голосов
/ 29 апреля 2019

Я делаю несколько таблиц, имеющих отношения один-ко-многим, и у меня также есть отношения один-к-одному, но если я решу это, почему это не работает, возможно, я смогу решить и один к одному.Я предоставлю некоторые коды для вас, чтобы посмотреть.

когда я перехожу к мастеру и набираю как «Company :: find (1) -> deparments», возвращается ноль.когда я проверяю базу данных, внешний ключ добавляется правильно.Я также установил первичный ключ в модели.

Стол компании

 public function up()
    {
        Schema::create('companies', function (Blueprint $table) {
            $table->bigIncrements('company_id');
            $table->string('phone');
            $table->string('company_name',100);
            $table->timestamps();
        });
    }

Стол отдела

  public function up()
    {
        Schema::create('departments', function (Blueprint $table) {
            $table->bigIncrements('department_id');
            $table->unsignedBigInteger('company_id');
            $table->foreign('company_id')->references('company_id')->on('companies')->onDelete('cascade');
            $table->string('department_name',100);
            $table->timestamps();
        });
    }

Модель компании

  protected $primaryKey = 'company_id';

    Protected $table='companies';
    Protected $fillable=['phone','company_name'];

    public function users()
    {
        return $this->hasMany(User::class,'user_id');
    }

Модель отдела


 protected $primaryKey = 'department_id';

    protected $table = 'departments';
    protected $fillable = ['department_name'];
    public function company()
    {
        return $this->belongsTo(Company::class,'company_id');
    }
    public function users()
    {
        return $this->hasMany(User::class,'department_id');
    }

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

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

public function departments()
{
    return $this->hasMany(Department::class,'department_id');
}
0 голосов
/ 29 апреля 2019

Я думаю, что так должно быть после создания отношений,

Company::with(['deparments'])->findOrFail(1);

Надеюсь, это поможет:)

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