Пользовательские представления laravel-voyager для роли

Laravel Version: 5.26.27
Voyager Version: 1.1.3
PHP Version: 7.2.1
Database Driver & Version: MySQL 5.6.38
Description:

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

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

@foreach($dataTypeContent->where('author_id','=', Auth::user()->id) as $data)

Но этот код изменяет все представления, потому что находится в представлении. Мне нужно более общее в модели

Возможно ли это с Voyager или для этого требуется специальный код? Заранее спасибо!


person Jorge Iraira    schedule 02.08.2018    source источник
comment
вы действительно должны исправить раздел But i need one option..., это трудно понять, но я понимаю, о чем вы просите.   -  person WhyAyala    schedule 02.08.2018
comment
извините, я просто говорю по-испански,   -  person Jorge Iraira    schedule 02.08.2018


Ответы (1)


Ваш вопрос немного сбивает с толку, но похоже, что вы спрашиваете, возможно ли переопределить представления Voyager или добавить пользовательские представления, и ответ: да, вы можете.

У них есть видео здесь: https://laravelvoyager.com/academy/views/

и письменная документация здесь: https://voyager.readme.io/docs/overriding-views

Короче говоря, создайте каталог resources/views/vendor/voyager/slug-name, где slug-name — это slug для соответствующего представления таблицы, которое вы хотите переопределить. Поместите файл edit-add.blade.php в эту папку вместе с файлом browse.blade.php. Я бы просто скопировал логику представления Voyager по умолчанию в эти файлы, а затем изменил их в соответствии с вашими потребностями.

person WhyAyala    schedule 02.08.2018
comment
Что я пытаюсь сделать, так это то, что в сообщении администратор видит все сообщения, а автор или редактор видит только те, которые он написал. по умолчанию это приводит к тому, что определенная роль добавляет или редактирует все, что доступно - person Jorge Iraira; 02.08.2018
comment
@JorgeIraira Вы хотите, чтобы вид просмотра менялся в зависимости от роли? Верно? - person WhyAyala; 02.08.2018
comment
@JorgeIraira Ну, вам придется изменить код Voyager по умолчанию. Для этого вам нужно будет сделать то, что я сказал в своем ответе. Это позволит вам изменить настройки Voyager по умолчанию. КАК вы измените настройки Voyager по умолчанию, зависит только от вас. Если хотите, я могу добавить предложение о том, КАК вы можете это сделать в своем ответе, но мне нужно найти Voyager. Прошло много времени с тех пор, как я использовал Voyager, и мне нужно читать. - person WhyAyala; 02.08.2018
comment
@JorgeIraira, если честно, я думаю, вам лучше проверить роль пользователя на контроллере, а затем отправить данные сообщений, которые вы хотите, чтобы пользователь с этой ролью видел. Есть смысл? - person WhyAyala; 02.08.2018
comment
я создаю новый файл bowser.blade.php и создаю фильтр типа Auth:User()-›role_id == '1', если администратор должен измениться только в представлении, если это администратор или другой пользователь, для администратора @foreach($ dataTypeContent как $data) и другие пользователи @foreach($dataTypeContent-›where('author_id','=', Auth::user()-›id) as $data) для показа только собственного сообщения - person Jorge Iraira; 03.08.2018
comment
@JorgeIraira да, я верю, что это сработает. Я рекомендую делать это только на контроллере, потому что в представлении много логики, и вы можете просто отфильтровать данные, поступающие в представление, заранее. Все, что работает для вас, хотя. Похоже, ты разобрался. - person WhyAyala; 08.08.2018