Метод hasRole Zizaco / entrust всегда возвращает false - PullRequest
0 голосов
/ 30 мая 2019

В моем приложении lasravel 5.7 с использованием https://github.com/Zizaco/entrust У меня проблема с использованием метода hasRole, поскольку он всегда возвращает false, даже в БД у меня есть допустимые строки.Вызов в управляющем приложении / Http / Controllers / PersonalController.php упакованный метод:

public function get($id)
{
    $user            = User::find($id);
    $check_roles_as_text= $user->checkRolesAsText();
...

app / User.php:

<code><?php

namespace App;

use Tymon\JWTAuth\Contracts\JWTSubject;
use Illuminate\Notifications\Notifiable;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;

use Illuminate\Auth\Passwords\CanResetPassword;
use Zizaco\Entrust\Traits\EntrustUserTrait;

class User extends Authenticatable implements JWTSubject
{
    use EntrustUserTrait;

    use Notifiable;
    protected $primaryKey = 'id';

   public function checkRolesAsText() {
        $arr= [];
        echo '<pre>$this->id::'.print_r($this->id,true).'
';// это показывает 5 - мой зарегистрированный пользователь // dd ($ this);// Если раскомментировать, поставьте ниже if ($ this-> hasRole (ACCESS_ROLE_ADMIN)) {$ arr [] = ACCESS_ROLE_ADMIN_LABEL;эхо '-1';} if ($ this-> hasRole (ACCESS_ROLE_MANAGER)) {$ arr [] = ACCESS_ROLE_MANAGER_LABEL;эхо '-2';} if ($ this-> hasRole (ACCESS_ROLE_CUSTOMER)) {$ arr [] = ACCESS_ROLE_CUSTOMER_LABEL;эхо -3;} echo '
$arr::'.print_r($arr,true).'
';return $ this-> concatArray ($ arr);}}

Проверка трассировки slq Я вижу, что user_id имеет значение null:

   SELECT `ad_roles`.*, `ad_role_user`.`user_id`     AS `pivot_user_id`, `ad_role_user`.`role_id`     AS `pivot_role_id` 
    FROM `ad_roles` 
    INNER JOIN `ad_role_user` on `ad_roles`.`id` = `ad_role_user`.`role_id` 
    WHERE `ad_role_user`.`user_id` is null 

Вывод dd ($ this):

User {#368 ▼
  #primaryKey: "id"
  #connection: "mysql"
  #table: "users"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:19 [▼
    "id" => 5
    "username" => "Admin"
    "email" => "admin@mail.com"
    "password" => "$2y$10$vxBkNOEteK5GwP/j1VEDiutmR92XVW1ixSEEQ5ZMq6WPY4RkAO97S"
    "remember_token" => null
    "status" => "A"
    "account_type" => "I"
    "verified" => 1
    "verification_token" => null
    "first_name" => "Red"
    "last_name" => "Song"
    "phone" => "247-541-7172"
    "website" => "red_song@make_vote.site.com"
    "notes" => null
    "creator_id" => null
    "activated_at" => null
    "avatar" => "5.jpeg"
    "created_at" => "2018-03-25 12:39:36"
    "updated_at" => "2018-05-20 19:48:03"
  ]
  #original: array:19 [▶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #hidden: []
  #visible: []
  #fillable: []
  #guarded: array:1 [▶]
  #rememberTokenName: "remember_token"

Не знаювидите, почему в sql user_id указано значение null и как это исправить?

Спасибо!

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