Андрей
А как можно реализовать связь многие ко многим в Yii 2? У каждого товара может быть несколько категорий.
Делаешь таблицу товаров и таблицу категорий и дополнительно создаешь третью таблицу, промежуточную, в которой будут 3 колонки id, tovar_id, group_id. Потом прописываешь в моделе товаров связь к промежуточной таблице. И в моделе групп прописываешь связь к промежуточной таблице. Серьезно, судя по твоим вопросам ты потратишь пол-года только на хоть примерно разобраться как оно работает. Я бы посмотрел на твоем месте на готовые решения.
Сидредин
Сидредин
Андрей
все, yii, rbac, модели, рилейшены ...
Андрей
а нет, уже 3
Андрей
Ну там много уже наворотили вплоть до автоматизации работы с оптовиками. Но тем не менее, я считаю ты неверно оцениваешь сложность задачи.
Сидредин
А есть готовые интернет-магазины на yii2?
Андрей
хз
SiZE
SiZE
Там как раз структура для тебя
Сидредин
Спасибо, но нет.
👀
Могу предложить движок от Krasota-style.com.ua за 200$, там уже готовый интернет магазин со своей админкой, адаптированный под оптовые продажи
who are you
на ютубе все видосы однотипные, как устанавливать где что лежит, кароче ничего путного нет
who are you
мало видосов где бы объясняли зачем они здесь пишут это а в другом файле другое, и не объясняют например что будет если другое указать. вот тупо с мануала читают, здесь так поставьте там вот так, т.е. не включая размышление
who are you
на англоязычных вроде неплохие видосы но там чисто по интуиции понимать приходится)))
🎅
Как бы так сказать.. для начального понимания на ютубе достаточно, а потом просто открываешь документацию, включаешь IDE и смотришь как там что устроено
🎅
Ведь магии никакой нет, и там такой же php код как и везде
🎅
А вот если вы в PHP еще не разумны и лезете уже во фреймворки, ставите rbac по беспределу - это уже другой разговор)
Сидредин
Viktor
Если вам rbac нужен только для разделения на админ и пользователь, то проще всего сделать 2 авторизации, и отделить в базе админов и пользователь по разным таблицам
Сидредин
Viktor
Anonymous
Так будет правильнее, мне кажется
Anonymous
Ну это чисто мое мнение, 17 летнего школьника
SiZE
не пойдет. identity может и не быть
Andrey
Не обязательно вызвать через identity
Andrey
Статического метода модели User вполне бы хватило.
Anonymous
Anonymous
вопрос есть
в рест использую HttpBearerAuth
обрашаюсь с другого домена /user/info
браузер сначала отправлет OPTIONS запрос
на что получает 401 не авторизован
может кто сталкивался?
SiZE
мало данных
SiZE
но вообще смотри что у тебя вперед чего вызывается
Anonymous
OPTIONS но он заголовки авторизации не посылает
Anonymous
Почему то
SiZE
смотри в браузере что у тебя там
Anonymous
$behaviors['authenticator'] = [
'class' => HttpBearerAuth::className(),
'only' => $authAction,
'except'=>['options','option']
];
Anonymous
SiZE
так это самое. причем тут yii ?
SiZE
кто у тебя запрос отправляет?
Anonymous
в смысле кто
Anonymous
я с одного домена обращаюсь на другой домен
путем $.ajax
Anonymous
jQuery
SiZE
ну
Anonymous
$.ajax({
type: 'get',
url: '<URL>',
headers:{'Authorization':'Bearer <TOKEN>'},
contentType: 'application/json;',
dataType: 'json',
success: function(result) {
data = result;
}, // use success?
complete: function(result) {
data = result;
} // or use complete?
});
Anonymous
почему то в postman без проблем все получаю
SiZE
Тебе надо или отключить авторизацию для OPTIONS запросов или передавать заголовок
Anonymous
ivphpan, [11.02.17 19:56]
$behaviors['authenticator'] = [
'class' => HttpBearerAuth::className(),
'only' => $authAction,
'except'=>['options','option']
];
Anonymous
так я тут же указал except
SiZE
в контроллере в методе behaviors выведи список всех поведений
Anonymous
видимо это роли не играет
Anonymous
решилось по другому
Anonymous
$authAction = $this->authAction();
if ($authAction && !$this->isOptions()) {
$behaviors['authenticator'] = [
'class' => HttpBearerAuth::className(),
'only' => $authAction,
'except'=>['options','option']
];
}
Anonymous
просто смысл тогда в except?
Anonymous
except идет экшенов
Anonymous
но не типов запросов
Aleksandr
при preflight авторизация не отправляется по спеке
Anonymous
а по русски?
SiZE
хотя тоже не очень по-русски
Anonymous
$.ajax({
type: 'get',
url: '<URL>',
headers:{'Authorization':'Bearer <TOKEN>'},
contentType: 'application/json;',
dataType: 'json',
success: function(result) {
data = result;
}, // use success?
complete: function(result) {
data = result;
} // or use complete?
});
Anonymous
перед ним браузер отправляет свой запрос
Anonymous
OPTIONS
Anonymous
а потом уже гет
Anonymous
но в опшн запрос он не добавляет
headers:{'Authorization':'Bearer <TOKEN>'},
SiZE
тебе всего то надо продебажить пару методово и понять, где ты ошибся
SiZE
я тебе предложил посмотреть список behaviors в конечном контроллере
Aleksandr
options, который отрпавляется перед запросом, называется preflight-запрос - его цель проверить разрешен ли доступ в контексте cors. По спецификации в этот запрос НЕ ДОЛЖНА включать авторизационная информация. т.е. поведение верное
Aleksandr
почему у тебя не работает except тебе ответит 5 минут дебага. больше тут обсуждатьнечего если речь идет о трех строчках из документации
Anonymous
я решил вопрос
просто из коробки видимо except не предусматривает OPTIONS запрос
Aleksandr
примеры в issue гитхаба говорят об обратном
Aleksandr
https://github.com/yiisoft/yii2/issues/6254
Anonymous
так у меня except options прописан был
$behaviors['authenticator'] = [
'class' => HttpBearerAuth::className(),
'only' => $authAction,
'except'=>['options','option']
];
Aleksandr
Anonymous
Ребят такой вопрос мне нужно сменить конфиг приложения после завершения парсинга url manager'a. Url manager кастомный и пихать в него код как то не очень. Короче мне нужно изменить параметр приложения а в ul manger'e инциализируется язык сайта, куда это лучше впихнуть?
Anonymous
Ребят. Есть ссылка вида site.ru/site/apps/index
Нужно сделать только site.ru/apps
В urlManager добавляю правило
['pattern' => 'apps', 'route' => 'site/apps/index']
При переходе на site.ru/apps получаю 404