Eloquent устанавливает значение NULL - PullRequest
0 голосов
/ 08 октября 2019

У меня ошибка с Eloquent (и многие из многих). Это мой код:

$user = new Users;
$rs = $user
    ->company()
    ->where('company_role.users_id', $request->session()->get('usrid'))
    ->where('code', $request->company)
    ->first();

Запрос, который выполняет Eloquent, следующий:

select `companies`.*, `company_role`.`users_id` as `pivot_users_id`, `company_role`.`companies_id` as `pivot_companies_id`, `company_role`.`role_name` as `pivot_role_name` from `companies` inner join `company_role` on `companies`.`id` = `company_role`.`companies_id` where `company_role`.`users_id` is null and `company_role`.`users_id` = 1 and `code` = 12345678901 limit 1)"

Как это возможно? Ребята, у вас есть идеи?

Это модель моего пользователя:

class Users extends Model
{
    //table associated with model
    protected $table = 'users';
    protected $primaryKey = 'id';

    public function company(){
        return $this->belongsToMany('App\Companies','company_role')->withPivot('role_name');
    }
}

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Это была ошибка новичка

Я просто изменил это:

    $rs = $user->company()->where('company_role.users_id',$request->session()->get('usrid'))->where('code',$request->company)->first();

на это:

        $rs = $user->find($request->session()->get('usrid'))->company()->where('piva',$request->company)->first();

и все работает как ожидалось.

Спасибо всем!

0 голосов
/ 08 октября 2019

Сначала определите переменные

$user_id = $request->session()->get('usrid');
$user = User::find($user_id);

Затем вам нужно найти пользователя и компании, к которым он присоединен, и отдельную компанию с параметрами поиска

$companies = $user->company()->get();

$company = $user->company()->where('code', $request->company)->first();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...