
Boris
30.03.2017
08:53:35
Подскажите, пожалуйста, что почитать

Ivan
30.03.2017
08:54:07
Из художественной литературы?)

Boris
30.03.2017
08:54:16
Из сказок)

Anatoly
30.03.2017
08:55:03

Google

Ivan
30.03.2017
08:55:59

Anatoly
30.03.2017
08:57:00
Ну, TC хотел сказку на ночь

Boris
30.03.2017
08:57:06
Есть таблица:
Table: id|name|slug|type|created_at/etc...
Type это FK на другую таблицу.
В rules TableModel name, slug = unique.
Но как правильно сделать что-бы уникальность проверялась не по всей таблице, а только по строкам с одинаковым типом?
Знаю что можно написать свой валидатор.

Anatoly
30.03.2017
08:57:33
'filter' => 'type' в правило добавь
Смотри в код UniqueValidator

Boris
30.03.2017
08:57:53
thanks

SiZE
30.03.2017
10:18:26
Не дизайнерская книга о дизайне )

Boris
30.03.2017
10:19:19
thanks, чтиво распланировано, что почитать о моем вопросе я имел ввиду)
а так на php сейчас Зандстра у меня идет не плохо
потом думаю "Совершенный код"

Евгений
30.03.2017
10:53:24
приветствую всех, могу коряво сформулировать вопрос. Кто нибудь знает как можно прочитать данные из потока ввода/вывода в контроллере. Я использу file_get_content("php://input") в контроллере и посылаю POST запрос но данные не прочитываются.Если использую тот же самый скрипт не в контроллере а в отдельном файле не в окружении Yii2 то все корректно отрабатывает, что нибудь можно придумать или есть где нибудь инфа на этот счет?

Google

Dmytro
30.03.2017
11:06:57
Можно пример кода?

Konstantin
30.03.2017
14:09:02
объясните что делает метод link()
$this->link('tags', $tag);
ему надо передавать id полученный из базы или из POST запроса

Alejandro
30.03.2017
14:11:55
Ему нужно передать модель

Konstantin
30.03.2017
14:13:07
https://shot.hsdn.org/nsWfF4IE
просто привык валидацию видеть
а здесь ее нет

Alejandro
30.03.2017
14:14:02
Ну я бы так не делал
а если там 100 связей, будет 100 запросов
Лучше ищи MyModel::findAll(['id' => $tags]);
foreach($models as $model) {
$this->link('relation', $model);
}

Konstantin
30.03.2017
14:15:15
чо главное интересно нет метода save ?

Alejandro
30.03.2017
14:15:41
дштл cfv ltkftn ыфму

Stass
30.03.2017
14:15:44
есть линк

Alejandro
30.03.2017
14:15:49
link сам делает save

Konstantin
30.03.2017
14:17:23
для link() обязаловка чтобы в базе был внешний ключ? или достаточно хасМани

Alejandro
30.03.2017
14:17:50
Достаточно
хасмани

Konstantin
30.03.2017
14:18:14
а primaryKey нужен чтобы был в структуре табы?

Alejandro
30.03.2017
14:18:51
ПК нужен для ActiveRecord

Google

Konstantin
30.03.2017
14:19:27
и расскажите почему нет валидации не понимаю. Ведь массив тегов мы же отправляем из формы, а все что принимаем нужно же проверять

Alejandro
30.03.2017
14:20:04
Валидировать надо входные данные
Массив тегов валидируйте
public function rules()
{
return [
['tags', 'each', 'rule' => ['string', 'min' => 10]]
]
}

Konstantin
30.03.2017
14:21:08
https://shot.hsdn.org/FtBTF8IW
тут нет валидации в этом примере

Alejandro
30.03.2017
14:21:29
Nfr pfgecrfq dfkblfwb.
Так запускай валидацию

Konstantin
30.03.2017
14:21:44
и link() не понятно, валидирует как save() или нет

Alejandro
30.03.2017
14:22:15
не валидирует. Зачем ему валидировать? Что валидировать? В link не идут входные данные, а модели
Валидируй данные в контроллере перед сохранением

Konstantin
30.03.2017
14:23:00

Konstantin
30.03.2017
14:23:27
мне сложно понять это что надо модель передать а не данные из формы
обычно как то все иначе выглядит при сохранении данных в базу
а тут какой то link и всё, без каких либо пониманий как он пашет
назвали бы его saveLink я бы понял что он сохраняет а вот просто link не понимал что это

Dmytro
30.03.2017
14:26:06
А вы пробовали читать доки?
Там же все написано
Или открыть код метода

Alejandro
30.03.2017
14:26:13
ну это уже не к нам)
Для понимания читай документацию и код

Konstantin
30.03.2017
14:26:33
читал конечно, но там так изложено что сразу не понять

Google

Alejandro
30.03.2017
14:26:45

Konstantin
30.03.2017
14:27:30
а вы часто пользуетесь этим методом link() ?

Alejandro
30.03.2017
14:27:37

Konstantin
30.03.2017
14:28:28
$order->customer_id = $customer->id;
$order->save();
вот такой способ мне понятен более, я тут вижу и сохранение и присваивание. а link() не очевиден

Dmytro
30.03.2017
14:29:36
Если вы освязаных моделях, то я написал behavior для этого
https://github.com/NullRefExcep/yii2-useful/blob/master/src/behaviors/RelatedBehavior.php
Можете глянуть afterSave
Там есть вызовы метода link

Alejandro
30.03.2017
14:31:19
Ну можете делать как хотите и не использовать линк
foreach($tags as $tag) {
$linkTable = new ModelToLink();
$linkTable->model1 = $this->id;
$linkTable->model2 = $tag->id;
$linkTable->save();
}

Admin
ERROR: S client not available

0x9d8e
30.03.2017
14:31:37
Люди, подскажите по ArctiveRecord'у.
Есть модель Payments.
Содзаю её $payment = new Payments(); Задаю какие-то свойства. Сохраняю $payment->save():
А потом мне нужен id (автоинкремент ПК в мускуле). А его-то и нет, запись то новая. Как можно его получить?

Konstantin
30.03.2017
14:32:32
после save можно получить

0x9d8e
30.03.2017
14:33:04

Konstantin
30.03.2017
14:33:05
getPrimaryKey() вроде

0x9d8e
30.03.2017
14:33:14
а, спасибо)

Konstantin
30.03.2017
14:33:35
возвращает айди последнего INSERT запроса

Alejandro
30.03.2017
14:33:38
Если отдает null значит чтото не так
При успешном сохранении в id должно попасть last_insert_id

0x9d8e
30.03.2017
14:34:33
Буду так делать:
$payment->save();
$payment->id = $payment->getPrimaryKey();

Google

Konstantin
30.03.2017
14:38:59
спасибо. немного разобрался с link()

Alejandro
30.03.2017
14:42:36

0x9d8e
30.03.2017
15:04:23

Artur
30.03.2017
15:29:22
всем привет
что то почта перестала отправлять письма
выдает ошибку
Swift_TransportException: Connection could not be established with host smtp.yandex.ru [php_network_getaddresses: getaddrinfo faile$ Stack trace:
в чем может быть проблема?

Dmytro
30.03.2017
15:30:33
А у вас хосты на сервере резолвлятся?
Попробуйте сделать ping

Artur
30.03.2017
15:31:18
сейчас попробую
все норм
с пингом
все норм, ничего не меняли. Сайт как работал, так и работает.
только почту не шлет

Dmytro
30.03.2017
15:32:11
Вы пингуете хост или ір-шку?

Artur
30.03.2017
15:32:34
пинг с сервера делал
на ya.ru

Dmytro
30.03.2017
15:33:00
Попробуйте сервер яндекса пропинговвть

Artur
30.03.2017
15:33:10
smtp.yandex.ru
пинговал
норм

Dmytro
30.03.2017
15:34:34
https://www.mailgun.com/
Тогда пробуйте другой smtp
Я часто использую mailgun
Там 10к сообщений бесплатно в месяц