laravel принадлежит, чтобы не работать с отношением один к одному - PullRequest
0 голосов
/ 24 мая 2018

У меня есть две таблицы:

**plans:**
planId, plan_name

**Users:**
userId, user_name, password, planId

Я попытался получить название плана, в котором я выбираю всех пользователей.

это модель пользователей:

<?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class Users extends Authenticatable {

    public $timestamps = false;
    protected $table = 'users';
    protected $primaryKey = 'userId';

    protected $fillable = [
        'user_name',
        'password',
    ];

    protected $hidden = [
        '_token',
    ];

    public function plan()
    {
        return $this->belongsTo('App\Plans', 'planId');
    }

    public function validateCredentials( MyUserInterface $user, array $credentials ) {
        $plain = $credentials["password"] . $user->getAuthPasswordSalt();

        return $this->hasher->check( $plain, $user->getAuthPassword() );
    }
}

и это модель плана:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Plans extends Model {

    public $timestamps = false;
    protected $table = 'plans';
    protected $primaryKey = 'planId';

    protected $fillable = [
        'plan_name'
    ];

    protected $hidden = [
        '_token',
    ];

    public function users()
    {
        return $this->hasMany('App\Users', 'planId');
    }
}

, когда я использовал: \ App \ Users :: get ();

нет никаких связей в выводе ... естьтолько пользователи.

что я могу сделать?

Я пытался использовать hasOne и та же проблема ...

tnx много

1 Ответ

0 голосов
/ 25 мая 2018

Вы можете загрузить отношения следующим образом:

\App\Users::with('plan')->get();

Или добавить свойство $with к всегда , если хотите загрузить его при получении пользователя:

class Users extends Authenticatable
{
    protected $with = [
        'plan'
    ];
} 

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

$users = \App\Users::get();

foreach ($users as $user) {
    dd($user->plan);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...