переопределение столбца отношения для отображения только пользователей с определенной ролью

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

Я пытался переопределить представление, но думаю, что его неправильный выбор поможет?

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

@endif

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

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


person mina_adel    schedule 22.06.2019    source источник


Ответы (1)


Я, наконец, сделал это с помощью пользовательских контроллеров. Шаги: сначала создайте новый контроллер

php artisan make:controller LeadController

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

<?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».

person mina_adel    schedule 23.06.2019