These are chat archives for LaravelRUS/chat

19th
Apr 2017
Kirill Nesmeyanov
@SerafimArts
Apr 19 2017 01:44

Broken News

Обновился сайт laravel.com
Maksim (Ellrion) Platonov
@Ellrion
Apr 19 2017 06:35
@SerafimArts breaking только)
JhaoDa
@jhaoda
Apr 19 2017 07:17
@Ellrion нет, broken, ибо сделали хуже
Eldar
@MyZik
Apr 19 2017 08:03
Глупый вопрос, но зачем в контроллере нужен метод store? Часто в примерах вижу.
Нельзя ли все действия хранить в одном контроллере в разных методах? Например, UsersController, просмотр профиля (1 метод), редактор личных данных (2), контактных данных (3) и т.д.
И в каждом методе проверка валидации, и на выходе подключение вида...
Alexander
@Dualse
Apr 19 2017 08:04
@MyZik store - создает новый объект
JhaoDa
@jhaoda
Apr 19 2017 08:04
@MyZik можно почитать документацию
Eldar
@MyZik
Apr 19 2017 08:05
@jhaoda не спрашивал бы, если б не читал.
JhaoDa
@jhaoda
Apr 19 2017 08:05
@MyZik значит, читай ещё раз, потому что не понял
Soprun Vladislav
@vlsoprun
Apr 19 2017 08:11
Всем привет :hand:
KarmaBot
@KarmaBot
Apr 19 2017 08:11
Прувет, @vlsoprun!
Ivan
@Hunternnm
Apr 19 2017 08:35
Всем привет
KarmaBot
@KarmaBot
Apr 19 2017 08:35
Будь как дома, @Hunternnm, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
NoViKoFF
@AndrewNovikof
Apr 19 2017 08:38
Всем привет
KarmaBot
@KarmaBot
Apr 19 2017 08:38
@AndrewNovikof, ну рассказывай. Как жизнь? :)
Alexander
@spartaque
Apr 19 2017 08:38
привет
KarmaBot
@KarmaBot
Apr 19 2017 08:38
Приветствую тебя, @spartaque!
NoViKoFF
@AndrewNovikof
Apr 19 2017 08:38
Можно ли глобально локализовать карбон?
Для всего проекта

Создал Сервис провайдер, зарегал, прописал в boot

Carbon::setLocale(config('app.locale', 'ru_RU.utf8'));

Но это не работает, ведь Карбон не синглтон

NoViKoFF
@AndrewNovikof
Apr 19 2017 08:44
Хотя вру, работает..
Nikita
@xenmayer
Apr 19 2017 08:46
@MyZik уточни вопрос. есть UsersController есть метод который рисует вьюшку профиля пользователя, метод который возвращает данные пользователя (если получил ID) и метод который создает или обновляет данные в модели User. Зачем еще методы?
Anton Vorontsov
@symbios-zi
Apr 19 2017 09:10
@MyZik все действия и так в разных методах. store принимает post запрос для создания новой записи. create рисует форму, которая шлет Post на метод store. Так же и edit, update
Kirill Nesmeyanov
@SerafimArts
Apr 19 2017 10:26
@Ellrion нене, всё верно там
Alexander
@spartaque
Apr 19 2017 10:35

@MyZik > не спрашивал бы, если б не читал.

Если бы прочитал это, вопросов бы не было

Nikita Kiselev
@nikitakiselev
Apr 19 2017 10:40

Добрый день, подскажите со следующим вопросом. Есть оборудование Equipment. Оборудование может быть нескольких типов - Цифровое и Аналоговое. У каждого типа оборудования свои характеристики. Я создал 2 модели - DigitalEquipmentProperty и AnalogEquipmentProperty.

Хотелось бы получать характеристики следующим образом:

$equipment->properties

И чтобы возвращались данные из той таблицы, какого типа оборудование. Думал это будет полиморфная связь, но она не подходит

KarmaBot
@KarmaBot
Apr 19 2017 10:40
О! @nikitakiselev! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
ikarol
@ikarol
Apr 19 2017 11:18
Добрый день, как правильно локализировать проект в Laravel 5.4, используя json файлы?
KarmaBot
@KarmaBot
Apr 19 2017 11:18
Привет, @ikarol! Проходи, присаживайся. В ногах правды нет :)
Ваня Devium
@webdevium
Apr 19 2017 11:19
и не выдумывай велосипеды
а если тебе надо js приложение переводить, то это совсем отдельная история
ikarol
@ikarol
Apr 19 2017 11:21
@webdevium Спасибо, мне нужно локализировать чистый проект на Laravel 5.4.
KarmaBot
@KarmaBot
Apr 19 2017 11:21
Спасибо (+1) для @webdevium принято! Текущая карма +117.
Nikita
@xenmayer
Apr 19 2017 11:23
@nikitakiselev Я бы попробовал максимально нормализовать базу. Табличка items, дальше табличка equipment_types, мету сгруппировать и под каждую группу мет таблицы) ключами это все перевязяать. В итоге в items будут колонки id, name, description, type_id .... Будет например таблица technical_meta в ней будут id, meta_1, meta_2, item_id. Все связи описать в моделях, а на что стандартных связей не хватит добавить репозитории
ikarol
@ikarol
Apr 19 2017 11:24
@webdevium не получается сделать, как в документации.
Ваня Devium
@webdevium
Apr 19 2017 11:24
@ikarol почему?
ikarol
@ikarol
Apr 19 2017 11:25
Создал файл в resources/lang/ru.json , в конфиге изменил локаль на ru, на вьюшке пробовал вызывать запись по ключу через встроенный в блейд echo и через @lang , но запись не переводится
PhpNet
@PhpNet
Apr 19 2017 11:41
@ikarol ну ясновидящих нет тут, покажи как выводишь, мало ль что забыл.
Ваня Devium
@webdevium
Apr 19 2017 11:42
@ikarol потому что там не json, а php массивы
читай доку еще раз внимательно
PhpNet
@PhpNet
Apr 19 2017 11:43
@webdevium можно и жсон юзать же. хотя пхп массивы проще
Ваня Devium
@webdevium
Apr 19 2017 11:44
@PhpNet можно и с базы тянуть переводы. Смотря что человек хочет сделать. Мне кажется, он сам не до конца понимает.
Alexander
@spartaque
Apr 19 2017 11:44
Ребят, никто не знает как добавить условие на таблицу модели для связи многие к одному(belongsTo)? К примеру есть модель ActivityLog, с полями user_id, user_role(значения: admin, manager). Для admin роли есть модель AdminProfile, manager - ManagerProfile. Нужно как то добавить условие на модель ActivityLog, если user_role === 'admin', строить связь $this->belongsTo(AdminProfile::class), а если manager - $this->belongsTo(ManagerProfile::class), что бы можно было получить данные о пользователе ActivityLog::with(['user'])->all().
Ваня Devium
@webdevium
Apr 19 2017 11:45
@spartaque никак
Coryphaeus
@cvdeveloper13
Apr 19 2017 11:45
@spartaque Разве нельзя привязать роль к пользователю через модель Role?
Ваня Devium
@webdevium
Apr 19 2017 11:45
разве что свой кастомный join делать, с условием
или же morph связи юзать
Coryphaeus
@cvdeveloper13
Apr 19 2017 11:50
@spartaque В принципе можно сделать обычный switch -
switch($this->user_role) { 
  // ROLE_ADMIN == 'admin'
  case self::ROLE_ADMIN: return $this->belongsTo(AdminProfile::class);  break;
}
Но это костыль... Думаю так делать неправильно...
Alexander
@spartaque
Apr 19 2017 11:52
@cvdeveloper13 в методе связи нету $this->user_role
знаю что это мой случай костыль, но что бы отрефакторить это, нужно ~ 3 дня времени, которого нету
Coryphaeus
@cvdeveloper13
Apr 19 2017 11:53

@spartaque

К примеру есть модель ActivityLog, с полями user_id, user_role(значения: admin, manager).

Alexander
@spartaque
Apr 19 2017 11:58
@cvdeveloper13 я о том, что ты не можешь в методе связи проверять на текущее значение поля user_role в методе связи user
public function user(){
    $this === new ActivityLog()
}
ikarol
@ikarol
Apr 19 2017 11:59
@webdevium в моём случае в приложении должно быть два языка: русский и английский. Подход через массивы работает. Проблема заключается в том, что при таком подходе получается @lang('diplomas.professor.create.task.description') , что кажется мне не очень правильным подходом.
Alexander
@spartaque
Apr 19 2017 12:00
что за diplomas.professor.create.task.description?
Ваня Devium
@webdevium
Apr 19 2017 12:00
@ikarol а зачем ты dot notation используешь??!
ikarol
@ikarol
Apr 19 2017 12:02
@webdevium в документации был пример @lang('messages.welcome')
Ваня Devium
@webdevium
Apr 19 2017 12:02
@ikarol это значит взять из файла messages ключ welcome
вот и вся твоя проблема. Ты не понял как ключи работают
ikarol
@ikarol
Apr 19 2017 12:03
messages.php <?php // resources/lang/en/messages.php return [ 'welcome' => 'Welcome to our application' ];
Ваня Devium
@webdevium
Apr 19 2017 12:03
правильно, и?
ikarol
@ikarol
Apr 19 2017 12:05
@webdevium вот пример моего файла nav.php
<?php

return [
    'login' => 'Войти',
    'register' => 'Регистрация',
    'dropdown' => [
        'logout' => 'Выйти',
        'dashboard' => 'Панель управления',
    ],
];
Ваня Devium
@webdevium
Apr 19 2017 12:05
@ikarol @lang('nav.register') или @lang('nav.dropdown.logout')
и?
Coryphaeus
@cvdeveloper13
Apr 19 2017 12:06
@spartaque У тебя есть поле user_role в модели ActivityLog. В методе создания связи с SomeRoleProfIle классом - в твоем случае в методе user - ты имеешь доступ к полям сущности.
const ROLE_ADMIN = 'admin';
// . . .
public function user()
{
  switch ($this->user_role) { 
    // ROLE_ADMIN == 'admin'
    case self::ROLE_ADMIN: return $this->belongsTo(AdminProfile::class);  break;
    case self::ROLE_MANAGER: return $this->belongsTo(ManagerProfile::class); break;
  }
  return $this->belongsTo(UserProfile::class);
}
ikarol
@ikarol
Apr 19 2017 12:07
@webdevium в более сложных массивах у меня и получаются такие строки @lang('diplomas.professor.create.task.title')
Ваня Devium
@webdevium
Apr 19 2017 12:08
@ikarol все равно не понимаю нафига, но ладно.
В чем проблема то?
ikarol
@ikarol
Apr 19 2017 12:09
@webdevium мне это кажется длинным и непонятным, по сравнению, например, с @lang("System for organization and management of course and diploma projects")
Ваня Devium
@webdevium
Apr 19 2017 12:10
@ikarol так сделай эту гребанную фразу ОДНИМ ключом, а не массивом хрен пойми чего
Alexander
@spartaque
Apr 19 2017 12:16
@cvdeveloper13 у методе связи нету $this->user_role, я же писал тебе выше
Coryphaeus
@cvdeveloper13
Apr 19 2017 12:19
@spartaque В таком случае не надо предоставлять недостоверную информацию.
Alexander
@spartaque
Apr 19 2017 12:20
@cvdeveloper13 и что я дал "деностоверного"?
Ilia Pupkin
@glacius36_twitter
Apr 19 2017 15:50
Здравствуйте! Подскажите пожалуйста. Мне нужно для магазина хранить фотографии. Ок ... но как сделать это лучше. Выделить поле одно в базе и туда сериализованным массивом вставлять список фотографий? Далее по ID товара складывать в папку /images/{ID}/...?
KarmaBot
@KarmaBot
Apr 19 2017 15:50
О! @glacius36_twitter! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
JhaoDa
@jhaoda
Apr 19 2017 15:53
@glacius36_twitter ну хз, как лучше тебе и в твоём проекте... но вообще удобней заюзать для этого связи
Ilia Pupkin
@glacius36_twitter
Apr 19 2017 15:53
что за связи? Просто я не проф в PHP, можете дать направление куда копать?
JhaoDa
@jhaoda
Apr 19 2017 15:54
@glacius36_twitter ты хоть на ларавел делаешь-то?
Ilia Pupkin
@glacius36_twitter
Apr 19 2017 15:54
ну как пишу конечно, но не на уровне профи, могу себя больше любителем назвать
конечно
JhaoDa
@jhaoda
Apr 19 2017 15:54
@glacius36_twitter тогда очень странный вопрос «куда копать». В доку копать конечно же.
Ilia Pupkin
@glacius36_twitter
Apr 19 2017 15:58
можно тыкнуть пальцем? Не могу найти в документации по слову "свзяи" что либо
Ilia Pupkin
@glacius36_twitter
Apr 19 2017 16:02
спасибо!
KarmaBot
@KarmaBot
Apr 19 2017 16:02
@glacius36_twitter, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
JhaoDa
@jhaoda
Apr 19 2017 16:08
@KarmaBot да зачем, мы же тут днями сидим исключительно ради того, что бы радостно и быстро отвечать на подобные вопросы, нас будоражит сам факт вопроса, из коего возникает синекдоха отвечания...
Nikolay Stepanov
@Maxlab
Apr 19 2017 16:59
$image->tags()->attach($tags);
где $tags коллекция. так нельзя? только массив с id нужен?
подскажите плиз, как элегантнее сделать
JhaoDa
@jhaoda
Apr 19 2017 17:00
@Maxlab а ты попробуй
Nikolay Stepanov
@Maxlab
Apr 19 2017 17:01
@jhaoda Column not found: 1054 Unknown column 'id' in 'field list'
это с коллекцией
JhaoDa
@jhaoda
Apr 19 2017 17:02
@Maxlab это мне ни о чем не говорит. Дебагбар в зубы и смотри генерируемый запрос
Nikolay Stepanov
@Maxlab
Apr 19 2017 17:07

@jhaoda спасибо за ответы. Нет, видимо коллекцией тут нельзя передать, только массивом.

 $image->tags()->attach($tags->pluck('id'));

вот так.

KarmaBot
@KarmaBot
Apr 19 2017 17:07
Спасибо (+1) для @jhaoda принято! Текущая карма +1500.
JhaoDa
@jhaoda
Apr 19 2017 17:08
@Maxlab ну, видимо. Правда, если заглянуть в код, то там видно, что можно и коллекцию. Но тебе веры больше :)
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:15
Всем привет! Как сделать mutator на массив array_name[] приходящий из формы?
KarmaBot
@KarmaBot
Apr 19 2017 17:15
@yabooodya, привет =)
Alexander
@Dualse
Apr 19 2017 17:16
@yabooodya А в чем проблема то?
JhaoDa
@jhaoda
Apr 19 2017 17:16
@yabooodya поясни связь мутатора (видимо, модельного) и формы
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:20
@jhaoda если элемент назван element_name - создаётся мутатор с именем setElementNameAttribute, как его с массивом назвать без понятия, в гугле тишина... Мне для сохранения связной модели нужны id из этого массива.
JhaoDa
@jhaoda
Apr 19 2017 17:20
@yabooodya ты хочешь в модели создавать методы на основе данных формы?
Ivan
@Hunternnm
Apr 19 2017 17:21
@jhaoda 1500 - и нет ачивки?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:22
@jhaoda да, обычные атрибуты оно прекрасно обрабатывает.
Alexander
@Dualse
Apr 19 2017 17:22
@yabooodya Ну а ты попробовал написать такой мутатор для массива и посмотреть какие данные в него приходят?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:23
@Dualse как назвать мутатор для массива? - вот в чем вопрос.
Alexander
@Dualse
Apr 19 2017 17:24
@yabooodya setElementNameAttribute
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:25
@Dualse у элемента имя element_name[]
Alexander
@Dualse
Apr 19 2017 17:26
@yabooodya То есть ты так к нему обращаешься $reqeust->element_name[]?
или все такие $request->element_name?
и в нем уже лежит массив
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:27
@Dualse второй вариант. Но мутатор не ловит внутри лежащий массив.
Alexander
@Dualse
Apr 19 2017 17:27
@yabooodya То есть ты попробовал и не получилось?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:28
@Dualse я уже всё что можно было перепробовать - перепробовал.
Alexander
@Dualse
Apr 19 2017 17:28
А в casts указывал, что это массив?
Хотя хз, нужно ли это
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:32
@Dualse и это пробовал.
@Dualse это для других целей.
Alexander
@Dualse
Apr 19 2017 17:34
@yabooodya Что для других целей? Casts?
Ваня Devium
@webdevium
Apr 19 2017 17:35
хихи)) $item->element_name[])))))))))))
@Dualse не может))
Alexander
@Dualse
Apr 19 2017 17:36
@webdevium Я что-то запутался уже)
Ваня Devium
@webdevium
Apr 19 2017 17:36
единственный бредовый вариант, это $item->{'element_name[]'}
но это вообще капец
и то, не факт, что будет работать)))
фигня какая-то, корочь)
Alexander
@Dualse
Apr 19 2017 17:37
@yabooodya Поянсни. Ты же мутатор делаешь для модели, а не для реквеста. Как у тебя поле может называться element_name[]?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:48
@Dualse да, для модели. Так же как и для других элементов, которых нет в таблице. С массивом просто не работает)
Ваня Devium
@webdevium
Apr 19 2017 17:49
а можно код самого мутатора взглянуть?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:50
@webdevium там просто dd приходящих значений. Он всё равно не работает.
Ваня Devium
@webdevium
Apr 19 2017 17:51
public function getMisticAttribute()
{
    return $this->attributes['mistic'] * 2;
}
я надеюсь ты не $value входящий возвращаешь?
JhaoDa
@jhaoda
Apr 19 2017 17:52
Я вообще не понимаю, о чем вы. Я задал автору вопрос, он ответил. Из ответа следует, что ему или про рантайм генерацию кода надо читать, или учебник логики...
Ваня Devium
@webdevium
Apr 19 2017 17:53
Темыч, я просто хочу помочь человеку понять что он вообще делает.
JhaoDa
@jhaoda
Apr 19 2017 17:53
@webdevium и я хотел, поэтому уточнил. Он ответил.
Alexander
@Dualse
Apr 19 2017 17:53
@yabooodya Уточню. А ты какую орм используешь?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:53
@webdevium зачем return? Это accessor.
public function setMisticAttribute($value)
{
    dd($value);
}
JhaoDa
@jhaoda
Apr 19 2017 17:54
@yabooodya set — аксессор?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:54
@Dualse Eloquent ORM
JhaoDa
@jhaoda
Apr 19 2017 17:54
Кому-то надо почитать доку...
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:54
@jhaoda set - мутатор.
JhaoDa
@jhaoda
Apr 19 2017 17:55
@yabooodya ты выше сам себе противоречишь
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:55
@jhaoda Ваня скинул код get с return. Я ему написал что это accessor.
@jhaoda А мой вопрос касается только mutator
JhaoDa
@jhaoda
Apr 19 2017 17:56
@yabooodya а, ок. Ну тогда иди читать про рантайм генерацию кода или учебник логики. Ну или ещё раз прочитай мой первый вопрос и попробуй на него ответить снова :)
Alexander
@Dualse
Apr 19 2017 17:56
@yabooodya А зачем тебе то называть поле element_name[]? Я вот до сих пор не пойму. Ты же можешь его просто назвать element_name и там хранить массив
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:57
@jhaoda Вопрос касательно связи мутатора и формы?
@Dualse что бы из формы пришёл массив.
JhaoDa
@jhaoda
Apr 19 2017 17:57
@yabooodya :point_up: 19 апреля 2017 г., 20:20
Alexander
@Dualse
Apr 19 2017 17:58
@yabooodya А как форма связана с моделью?
Bogdan Savchenko
@yabooodya
Apr 19 2017 17:58
@jhaoda В данном случае да.
Alexander
@Dualse
Apr 19 2017 17:58
К тому же ты в реквесте обращаешься ->element_name
Так что вообще не понимаю откуда у тебя берутся квадратные скобки
JhaoDa
@jhaoda
Apr 19 2017 17:59
@yabooodya м-да... ок, третий раз. Ты хочешь на основе данных формы СОЗДАТЬ в модели мутатор в процессе исполнения кода?
Bogdan Savchenko
@yabooodya
Apr 19 2017 18:00
@Dualse
Мне нужно что бы это делал мутатор)
 <input type="text" name="element_name[]">
Ваня Devium
@webdevium
Apr 19 2017 18:00
фу какой ужас
Bogdan Savchenko
@yabooodya
Apr 19 2017 18:00
@jhaoda мутатор заранее создан. Мне нужно что бы он ловил массив.
Alexander
@Dualse
Apr 19 2017 18:01
@yabooodya Покажи код
JhaoDa
@jhaoda
Apr 19 2017 18:01
@yabooodya вроде бы я задаю простой вопрос, подразумевающий ответ «да» или «нет»... но ты не ищешь простых путей, да?
Ваня Devium
@webdevium
Apr 19 2017 18:02
Ключ то все равно в реквесте приходит element_name. Нахера усложнять... Не пойму.
Alexander
@Dualse
Apr 19 2017 18:03
@webdevium Ну откровенное говоря, я даже не понимаю, как форма превращается в модель
Bogdan Savchenko
@yabooodya
Apr 19 2017 18:03
@jhaoda
<?php

namespace App;

use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use Notifiable;

    public function setImagesAttribute($value) {
        $this->images()->sync($value);
    }

}
Ваня Devium
@webdevium
Apr 19 2017 18:04
@Dualse я вангую, что там просто не понимают как работает http.
alexeymezenin
@alexeymezenin
Apr 19 2017 18:42
Привет. Знакомлюсь с Vue и Angular 2. Подскажите, я правильно понимаю, что при построении API нужно использовать X-CSRF-TOKEN токен, если фронт-енд на том же домене и для Vue.js он уже встроен в Bootstrap.js. А если фронт-енд на другом домене, то использую Passport (oAuth2). А JWT вообще не использую, верно?
KarmaBot
@KarmaBot
Apr 19 2017 18:42
Привет, @alexeymezenin! Проходи, присаживайся. В ногах правды нет :)
Ваня Devium
@webdevium
Apr 19 2017 18:42
@alexeymezenin ты чатом ошибся
alexeymezenin
@alexeymezenin
Apr 19 2017 18:43
@webdevium почему? Вопрос касается создания API с помощью Laravel 5.4
перечитал/пересмотрел кучу туториалов по созданию API с помощью Laravel, каждый объясняет по-своему, в итоге каша в голове
Ваня Devium
@webdevium
Apr 19 2017 18:45
@alexeymezenin Если ты так считаешь, то: X-CSRF-TOKEN нужен только в том случае, если включена соответствующая мидлваря. Можешь ее выключить, и тогда не надо CSRF токен.
Все остальное в твоем сообщении ВООБЩЕ никакого отношения не имеет к laravel.
alexeymezenin
@alexeymezenin
Apr 19 2017 18:46
спасибо, подожду, может кто-то еще ответит
KarmaBot
@KarmaBot
Apr 19 2017 18:46
@alexeymezenin, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
JhaoDa
@jhaoda
Apr 19 2017 19:12
@alexeymezenin я отвечу так же
Roman
@RomanKolosov
Apr 19 2017 20:28

всем привет пишу контроллер для модели тегов, и решил написать методы syncCategory, syncImage e.t.c., всё получилось но когда стал прописывать политики для новых методов столкнулся с неприятностью, ошибка после примера описания методов политики

    protected $resourceAbilityMap = [];

    public function __construct()
    {
        $this->middleware('moderator')->except('index', 'show');
        $this->authorizeResource(Tag::class);
    }

    /**
     * Change default authorization
     * @return array
     */
    protected function resourceAbilityMap(): array
    {
        return array_merge([
                'syncCategory' => 'category',
                'syncImage' => 'image',
                'syncVideo' => 'video',
                'syncAlbum' => 'album',
                'syncArticle' => 'article',
            ],
            $this->resourceAbilityMap
        );
    }

ошибка "jquery.min.js:4 PUT http://127.0.0.1:8000/tags/sync/category/8 403 (Forbidden)"

роут

    Route::put('/tags/sync/category/{category}', 'TagController@syncCategory');

сам метод

    public function syncCategory(SyncTagsRequest $request, Category $category): Category
    {

        $category->tags()->sync($request->input('tag_list'));

        Session::flash('success', __('messages.tag.success.syncCategory'));

        return $category;
    }

метод политики TagPolicy

    public function category(User $user, Category $category)
    {
        if ($user->isRole('moderator')) {
            return true;
        }

        return false;
    }

подскажите пожалуйста как мне сделать что бы из контроллера Тегов можно было авторизировать этот метод

KarmaBot
@KarmaBot
Apr 19 2017 20:28
@RomanKolosov, ну рассказывай. Как жизнь? :)
@RomanKolosov, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
JhaoDa
@jhaoda
Apr 19 2017 20:31
@RomanKolosov а нельзя было в политике написать return $user->isRole('moderator');, м?
Roman
@RomanKolosov
Apr 19 2017 20:33
@jhaoda ну да, это уже от усталости, спасибо за заметку, но вопрос всё равно в другом)
Roman
@RomanKolosov
Apr 19 2017 20:41
может быть я вообще не правильно подошёл к решению данного вопроса?
Не очень понятен смысл, но получается, что надо предавать имя модели два раза
Roman
@RomanKolosov
Apr 19 2017 20:50
@jhaoda ты про смысл методов в контроллере тегов или про реализацию authorizeRequest?
Если про методы sync* то идея такая - если теги не нужны, не чистить методы связанные с ними по всюду а убрать только их взаимодействие с другими моделями.
В любом случае уже очень плохо варит голова, можешь пожалуйста носом тыкнуть где и что нужно исправить?
JhaoDa
@jhaoda
Apr 19 2017 20:51
@RomanKolosov я про строку кода, на которую дал ссылку
Roman
@RomanKolosov
Apr 19 2017 21:01

@jhaoda спасибо, смешно но вот так заработало

        $this->authorizeResource(Tag::class, Tag::class);

только теперь ошибка на второй параметр, пришлось закоментировать, если не трудно можешь ещё с этим помочь?)

    public function category(User $user)//, Category $category)
    {
        return $user->isRole('moderator');
    }

сама ошибка

Type error: Too few arguments to function App\Policies\TagPolicy::category(), 1 passed in D:\dir\vendor\laravel\framework\src\Illuminate\Auth\Access\Gate.php on line 413 and exactly 2 expected
KarmaBot
@KarmaBot
Apr 19 2017 21:01
Спасибо (+1) для @jhaoda принято! Текущая карма +1501.
JhaoDa
@jhaoda
Apr 19 2017 21:22
@RomanKolosov как в метод политики должна попасть категория? Сама, волшебным образом?
Roman
@RomanKolosov
Apr 19 2017 21:22
@jhaoda вот и у меня такой вопрос, но я не знаю как реализовать грамотно