Denis
ls
Konstantin
Подскажите плиз как привильно называть HTTP загловки созданные на клиенте:
X-Auth-Token или Auth-Token ?
Ivan
Borys
aloha
Borys
Подскажите, пожалуйста, что почитать
Ivan
Из художественной литературы?)
Borys
Из сказок)
Ivan
Toly
Ну, TC хотел сказку на ночь
Borys
Есть таблица:
Table: id|name|slug|type|created_at/etc...
Type это FK на другую таблицу.
В rules TableModel name, slug = unique.
Но как правильно сделать что-бы уникальность проверялась не по всей таблице, а только по строкам с одинаковым типом?
Borys
Знаю что можно написать свой валидатор.
Toly
'filter' => 'type' в правило добавь
Toly
Смотри в код UniqueValidator
Borys
thanks
SiZE
Не дизайнерская книга о дизайне )
Borys
thanks, чтиво распланировано, что почитать о моем вопросе я имел ввиду)
Borys
а так на php сейчас Зандстра у меня идет не плохо
Borys
потом думаю "Совершенный код"
Eugene
приветствую всех, могу коряво сформулировать вопрос. Кто нибудь знает как можно прочитать данные из потока ввода/вывода в контроллере. Я использу file_get_content("php://input") в контроллере и посылаю POST запрос но данные не прочитываются.Если использую тот же самый скрипт не в контроллере а в отдельном файле не в окружении Yii2 то все корректно отрабатывает, что нибудь можно придумать или есть где нибудь инфа на этот счет?
Dmytro
Можно пример кода?
who are you
объясните что делает метод link()
who are you
$this->link('tags', $tag);
who are you
ему надо передавать id полученный из базы или из POST запроса
Alejandro
Ему нужно передать модель
who are you
https://shot.hsdn.org/nsWfF4IE
who are you
просто привык валидацию видеть
who are you
а здесь ее нет
Alejandro
Ну я бы так не делал
Alejandro
а если там 100 связей, будет 100 запросов
Alejandro
Лучше ищи MyModel::findAll(['id' => $tags]);
foreach($models as $model) {
$this->link('relation', $model);
}
who are you
чо главное интересно нет метода save 🤔
Alejandro
дштл cfv ltkftn ыфму
Stass
есть линк
Alejandro
link сам делает save
who are you
для link() обязаловка чтобы в базе был внешний ключ? или достаточно хасМани
Alejandro
Достаточно
Alejandro
хасмани
who are you
а primaryKey нужен чтобы был в структуре табы?
Alejandro
ПК нужен для ActiveRecord
who are you
и расскажите почему нет валидации не понимаю. Ведь массив тегов мы же отправляем из формы, а все что принимаем нужно же проверять
Alejandro
Валидировать надо входные данные
Alejandro
Массив тегов валидируйте
Alejandro
public function rules()
{
return [
['tags', 'each', 'rule' => ['string', 'min' => 10]]
]
}
who are you
https://shot.hsdn.org/FtBTF8IW
who are you
тут нет валидации в этом примере
Alejandro
Nfr pfgecrfq dfkblfwb.
Alejandro
Так запускай валидацию
who are you
и link() не понятно, валидирует как save() или нет
Alejandro
не валидирует. Зачем ему валидировать? Что валидировать? В link не идут входные данные, а модели
Alejandro
Валидируй данные в контроллере перед сохранением
who are you
who are you
мне сложно понять это что надо модель передать а не данные из формы
who are you
обычно как то все иначе выглядит при сохранении данных в базу
who are you
а тут какой то link и всё, без каких либо пониманий как он пашет
who are you
назвали бы его saveLink я бы понял что он сохраняет а вот просто link не понимал что это
Dmytro
А вы пробовали читать доки?
Там же все написано
Или открыть код метода
Alejandro
ну это уже не к нам)
Alejandro
Для понимания читай документацию и код
who are you
читал конечно, но там так изложено что сразу не понять
Alejandro
who are you
а вы часто пользуетесь этим методом link() ?
Alejandro
who are you
$order->customer_id = $customer->id;
$order->save();
who are you
вот такой способ мне понятен более, я тут вижу и сохранение и присваивание. а link() не очевиден
Dmytro
Если вы освязаных моделях, то я написал behavior для этого
https://github.com/NullRefExcep/yii2-useful/blob/master/src/behaviors/RelatedBehavior.php
Dmytro
Можете глянуть afterSave
Dmytro
Там есть вызовы метода link
Alejandro
Ну можете делать как хотите и не использовать линк
foreach($tags as $tag) {
$linkTable = new ModelToLink();
$linkTable->model1 = $this->id;
$linkTable->model2 = $tag->id;
$linkTable->save();
}
Иван
Люди, подскажите по ArctiveRecord'у.
Есть модель Payments.
Содзаю её $payment = new Payments(); Задаю какие-то свойства. Сохраняю $payment->save():
А потом мне нужен id (автоинкремент ПК в мускуле). А его-то и нет, запись то новая. Как можно его получить?
who are you
после save можно получить
who are you
getPrimaryKey() вроде
Иван
а, спасибо)
who are you
возвращает айди последнего INSERT запроса
Alejandro
Если отдает null значит чтото не так
Alejandro
При успешном сохранении в id должно попасть last_insert_id
Иван
Буду так делать:
$payment->save();
$payment->id = $payment->getPrimaryKey();