@yii2ru

Страница 120 из 1721
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
Из сказок)
Как выучить C++ за 100 дней

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
Konstantin
30.03.2017
14:27:30
а вы часто пользуетесь этим методом link() ?

Alejandro
30.03.2017
14:27:37
читал конечно, но там так изложено что сразу не понять
http://stuff.cebe.cc/yii2docs-ru/guide-db-active-record.html#saving-relations Много букв и примеры. Как можно не понять?

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
после save можно получить
$payment->id отдаёт null :(

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
Буду так делать: $payment->save(); $payment->id = $payment->getPrimaryKey();
всегда лучше нагородить костыль, чем разобраться в проблеме)

0x9d8e
30.03.2017
15:04:23
всегда лучше нагородить костыль, чем разобраться в проблеме)
Оказалось я не учёл, что save неявно вызывает валидацию, а я как раз перенёс подсчёт цены на более поздний этап и она оказывалась null. Почему-то ожидал, что если при сохранении что не так, то будет исключение.

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к сообщений бесплатно в месяц

Страница 120 из 1721