переопределяющий столбец соответствия, чтобы показывать только пользователей с определенной ролью - PullRequest
0 голосов
/ 22 июня 2019

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

Я пытался изменить представление, но мне кажется, что это неправильный выбор?

@if($row->field == 'lead_belongsto_user_relationship')

@endif

Я могу добраться до столбца в представлении view/add, но я не знаю, как редактировать массив результатов или как переопределить запрос.

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

1 Ответ

0 голосов
/ 23 июня 2019

Я наконец сделал это Используя пользовательские контроллеры. Шаги: Сначала создайте новый контроллер

php artisan make:controller LeadController

Расширьте контроллер Voyager

<?php

namespace App\Http\Controllers;

class LeadController extends \TCG\Voyager\Http\Controllers\VoyagerBaseController
{
    //...
}
?>

Наконец, вы можете переопределить функцию отношения из VoyagerBaseController

        if($request->type == "lead_belongsto_user_relationship"){
            if ($search) {
                $total_count = app($options->model)->where($options->label, 'LIKE', '%'.$search.'%')->count();
                $relationshipOptions = app($options->model)->take($on_page)->skip($skip)
                    ->where($options->label, 'LIKE', '%'.$search.'%')->where("role_id",3)
                    ->get();
            } else {
                $total_count = app($options->model)->count();
                $relationshipOptions = app($options->model)->take($on_page)->skip($skip)->where("role_id",3)->get();
            }
        }

Здесь я переопределил его, чтобы выбрать только пользователей с role_id = 3, вы можете настроить его так, как вам нужно.

После этого перейдите в BREAD-настройки и введите имя контроллерас вашим полным именем класса в моем случае это "\ App \ Http \ Controllers \ LeadController"

...