Abl
в настройках ствиш тру на парметр и все
Какой параметр необходимо заменить?
Stas
asset manager никак не узнает что у тебя исходники изменились
ну так подожди если столит линк асетс он же только ссылку ставит в ассетсах на оригинальный файл если неошибаюсь а так как оригинальный изменился то автоматом подругится при обновдении страницы новый (хотя я могу быть неправым)
Alexey
symlink($src, $dstDir);
Alexey
отдельно файлы никто не симлинкает
Alexey
baseUrl задай /web/api
Sam
baseUrl задай /web/api
Да я забыл index.php отключить, протупли
Timur
Господа, добрейшего денечка! Подскажите пожалуйста, создал с помощью Gii модель и CRUD для нее, все прошло отлично, но на форме создания/обновления все поля формы обязательны для заполнения (у полей стоит aria-required="true"). Как бы мне некоторые поля сделать не обязательными? Поле во вьюхе выводится как <?= $form->field($model, 'operators')->textInput()->label("Операторы") ?>
Vadim
В модели
Vadim
И в базе
Al
и словить ошибку базы после 👍
Иван
и словить ошибку базы после 👍
это уже следующий этап) если Gii сгенерил поле как обязательное, то сделал это он конечно на основе notNull поля в бд.
Timur
Спасибо за советы! Помогла правка rules в модели. БД у меня от самописного проекта, который переводим на Yii2, и там нужное поле вполне может быть пустым, notNull у него нет.
Evgenii
Всем привет! Подскажите пожалуйста. $model - AR моделька статей , у которой есть связь для получения категорий(которых может быть несколько): public function getCategories() { return $this ->hasMany(Category::className(), ['id' => 'category_id']) ->viaTable(CategoryArticles::tableName(), ['article_id' => 'id']); } Нужно закинуть в $is_attribute значение true если у текущей статьи есть категория с alias = 'myalias'. Реализовал это методом перебора всех категорий и тупой проверки алиаса каждой. foreach($model->categories as $category) { if ($category->alias == 'myalias') { $is_attribute = true; } } Но я подозреваю, что должно быть более элегантное решение.
SiZE
$article->getCategories()->alias($alias)->exists();
Evgenii
getCategories возвращает несколько обьектов. и у каждого есть атрибут alias. а это как должно работать: alias($alias)?
SiZE
getCategories возвращает несколько обьектов. и у каждого есть атрибут alias. а это как должно работать: alias($alias)?
Давай разберемся ->categories - возвращает несколько объектов Category ->getCategories() - возвращает один объект ActiveQuery
SiZE
а это как должно работать: alias($alias)? вот так: ->andWhere(['category.alias' => $alias])
Evgenii
так и ->cateogries и ->getCategories() возвращает одно и тоже - несколько обьектов Category
SiZE
удачи)
Evgenii
ага)
Evgenii
дамп getCategories() вообще какого-то хрена всю модель показывает
Evgenii
а ->categories как и положено несколько категорий
Vitaliy
Однако метод получения связных данных возвращает объект yii\db\ActiveQuery, в то время как доступ к свойству связи возвращает объект yii\db\ActiveRecord или массив таких объектов.
Vitaliy
Из документации
Evgenii
спасибо. не знал. получается нереально передать в связь параметр и получить обьект AR?
Evgenii
я бы дергал связь, которая бы возвращала категорию по переданному алиасу
Evgenii
ребят, вкурил суть exists(). реально не знал шифку с возвратом ActiveQuery. спасибо SiZE и Vit Mih. сори за тупые вопросы)
SiZE
ну это прям праздник какой-то =)
Vadim
Может кто-то сталкивался. Сейчас в mysql тип поля text, в нем лежит json. Меняю тип поля на JSON. После конвертации он меняет порядок элементов в массиве, выстраивает их по ключам. Как-то можно, чтобы он это не делал?
Al
объект не имеет порядка
Al
а в массиве менять не может
Vadim
В общем. Массив: [ 9 => "John", 2 => "Mike" ] Если сделать json_encode, то поряок сохранится, но если сохранить в поле с типом JSON, то он отсортирует массив по ключам.
SiZE
храни объект
Al
в жс нет строковых ключей у массива
Al
строковые у объекта, но объект не имеет порядка по этой самой причине
Al
по факту ваш новый "порядок" результатом имеет тот же самый массив, зачем вам вообще порядок?
Vadim
храни объект
Это очень много переделывать
Niko
В общем. Массив: [ 9 => "John", 2 => "Mike" ] Если сделать json_encode, то поряок сохранится, но если сохранить в поле с типом JSON, то он отсортирует массив по ключам.
сделай массив вложенным и добавь поле order типа [{9 => "Jojn", "order" => 1}, {2 => "Mike", "order" => 2}] если нужно учитывать порядок, что уж сделать?
Vadim
сделай массив вложенным и добавь поле order типа [{9 => "Jojn", "order" => 1}, {2 => "Mike", "order" => 2}] если нужно учитывать порядок, что уж сделать?
Это все понятно, я и ключи могу изменить в нужном порядке, но это переделывать много. Уж проще поле text оставить
Niko
или ключи поменяй, чтоб John был по ключу 2, а не 9
Al
вы дичь какую-то несете
Niko
по идее не много переделывать, а место сохранения и вывода
Al
a = []; a[7] = 'Mike'; a[9] = 'John'; JSON.stringify(a); "[null,null,null,null,null,null,null,"Mike",null,"John"]"
Al
че у вас в базе записано конкретно?
Al
тут как бы ключей вообще нет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Niko
тут как бы ключей вообще нет
я тоже не совсем пойму зачем там ключи хранить
Al
да даже вопрос не зачем, а что именно там меняется, потому что он говорит про массив и одновременно про ключи, хотя жсон их не имеет как я показал
Al
либо там объект, тогда порядок не играет роли, он все равно не существует
Niko
он имеет, но пустые значения в них содержит
Al
и выводится не в том же порядке)
Vadim
"filter": {"2": {"data": {"11": "Полная",
Al
это не массив
Vadim
Перед сохранением в базу было: "filter": {"9": {"data": {"17": "Частичная",
Al
это одно и то же
Al
{a: "lala", b: "mama"} То же самое что {b: "mama", a: "lala"}
Vadim
Но ведь после json_decode получается: [filter] => Array ( [2] => Array ( [data] => Array ( [11] => Полная
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Это объект👆
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Работай с ним как с объектом и все норм будет
Al
в пхпшном декоде есть параметр массивами делать или объектами
Al
может поможет
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Нет, дэкод же а не
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Речь об энкоде
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Vadim
Так, давайте еще раз. У меня есть массив. Я делаю его json_encode и сохраняю в базу. Если я сохраню его в поле TEXT, то после json_decode порядок сохраняется, но если сохраню в поле JSON, то он изменится.
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Тогда отдавай не ассоциативным массивом в js, идентификатор внутрь
Al
да нет у него массива
Al
у него объект
Al
он путается
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Стой
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Код пишу с телефона)
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
[ [id=>9, ....], [id=>2,...] ]
☕️ 𝕽𝖔𝖈𝖐𝖊𝖙𝕽𝖆𝖈𝖈𝖔𝖔𝖓
Профит