Nurik
понятное дело, что js кода не должно быть целая туча, но как-то всеравно надо передавать данные из php в js
А что мешает выносить в отдельные файлы ? Ну вот ломается у Вас что-то на сайте. И Вы не знаете, либо это PHP недогенерировал JS который нужен был, либо это конфликт JS библиотек.
Dmytro
не считаю себя экспертом, но как по мне существует два основных способа передавать данные из php в js это либо генерация js кода со вставками php либо вывод в html
SiZE
И ниче
Nurik
Dmytro
если я где-то ошибся, пожалуйста, исправьте
SiZE
И как ты из рнр данные подтягиваешь? Аяксом ?
Dmytro
я имел ввиду без дополнительных запросов
SiZE
Не ты
Dmytro
понял, я точнил
SiZE
А он )
SiZE
Просто с js fw понятно
Nurik
И как ты из рнр данные подтягиваешь? Аяксом ?
Один раз JSON конфиг с настройками.
SiZE
А с обычными скриптами либы в файлы, вызов в рнр
Nurik
а это уже не js?)
Нет, это JSON)
Nurik
Это файл конфигурации.
Dmytro
вам аббревиатуру расшифровать?
SiZE
Короче, не надо рубить с плеча. Все должно быть уместно
SiZE
Или к месту
Dmytro
Нет, это JSON)
да, это не js, это java script object notation
Nurik
Короче, не надо рубить с плеча. Все должно быть уместно
Вы просто не встречали такие проекты в которых очень много JS кода. И из-за свободы фреймворка. И отстуствтвие дисциплины делают своё дело.
Nurik
Много неподдерживаемого говна производится на свет.
Nurik
Благодаря вот таким вот registerjs
Nurik
да, это не js, это java script object notation
Не нужно мне расшифровывать аббривиатуры вы прекрасно должны понимать что JSON это ФОРМАТ, а не объекты из jS.
Dmytro
Вы написали, что json -- это не js и вы тут не правы во всем остальном это ваше субъективное мнение, у вас есть на него право если вам удобнее не использовать ф-ии типа registerjs, это не значит, что так должны делать все. Если эта ф-ия есть в фреймворке, значить часть людей ее используют
Dmitriy
Про Yii::$app в моделях что скажете ?
Dmytro
а можно пример?
Dmytro
Yii::t ипользуют все, а это тот же вызов Yii::$app
Dmitriy
https://github.com/dektrium/yii2-user/blob/master/models/User.php#L356 самый популярный пример
SiZE
Про Yii::$app в моделях что скажете ?
Нормас ) я свои проекты на 100 платформ переводить не собираюсь. Но у меня вроде нет такого. Я обычно передаю зависимости.
Dmitriy
Нормас, которые используют обычно как я скинул выше
Dmitriy
Что есть плохо
Dmytro
@ExileeD Вы код этого модуля хорошо смотрели?
Dmytro
https://github.com/dektrium/yii2-user/blob/master/Bootstrap.php#L71
Dmytro
вот вам и гарантия
Dmytro
а компонент user есть в стандартном Application
Dmitriy
@ExileeD Вы код этого модуля хорошо смотрели?
Да он ужасный. В модели логинят пользователя. Там такого быть не должно
Dmytro
можете предложить лучший?
Dmytro
лично я использую очень часто
Dmitriy
Модуль ? Или код ?
Dmytro
использую модуль
Dmitriy
Если модуль, но наверно нет. Не видел не одного норм модуля авторизации и регистрации
who are you
dropDownList - как его надо сейвить? через форыч что ли? если там мульти выбор
Dmytro
Хорошо, тогда может вы мне напишете способ передавать данные в js без этого? echo json_encode?)
Dmytro
https://github.com/dektrium/yii2-user/blob/master/models/User.php#L356
Dmytro
хотя для логина есть еще отдельная модель, но это для формы: https://github.com/dektrium/yii2-user/blob/master/models/LoginForm.php#L141
Dmitriy
Что по вашему модель?
реализация шаблона ActiveRecord
Dmitriy
SRP тот модуль нарушает
who are you
в чем хитрость сохранения dropDownList 'multiple' => 'true'?
who are you
load получает массив из формы
who are you
а save хз как делают ))
Dmytro
у вас связаные модели, или что?
who are you
и валидация непонятно как
who are you
связано да
Dmytro
https://github.com/voskobovich/yii2-many-to-many-behavior#creating-form-fields
Dmytro
гляньте
Dmytro
если массив в одно поле надо сохранить, тогда нужно сериализацию делать, чтобы в бд сохранялись как строка
Dmytro
https://github.com/NullRefExcep/yii2-useful/blob/master/src/behaviors/JsonBehavior.php это пример с json-ом
Nurik
Хорошо, тогда может вы мне напишете способ передавать данные в js без этого? echo json_encode?)
Я использую файлы конфигураций. Нужно явно разграничивать где фронтенд, а где бэкенд. Т.е. если у Вас будет для каждой страницы JSON конфиг, то Вы всегда явно будете знать, что будет использоваться на каждой из страниц. Даже с учетом того, что у Вас будет сложная логика на фронте(т.е. по сути в одну въюху включать отрендеренные другие, которые по факту могут быть сложным компонентом или виджетом, вот их json конфиги собирать в один),можно собирать конфиги в один, если надо каскадно. И инициализовать один раз. Передавать конфиг перед инфициализацией js можно разными способами. Выбирайте тот, который будет удобнее. Да, в этом случае может получиться больше файлов, но это намного прозрачнее. Можно всегда в дебагере браузера просмотреть что было передано в конфиг перед инициализацией и таким образом локализовать проблему.
Dmytro
Да, вы правы
Dmytro
Очень правильный подход
Nurik
Я использую файлы конфигураций. Нужно явно разграничивать где фронтенд, а где бэкенд. Т.е. если у Вас будет для каждой страницы JSON конфиг, то Вы всегда явно будете знать, что будет использоваться на каждой из страниц. Даже с учетом того, что у Вас будет сложная логика на фронте(т.е. по сути в одну въюху включать отрендеренные другие, которые по факту могут быть сложным компонентом или виджетом, вот их json конфиги собирать в один),можно собирать конфиги в один, если надо каскадно. И инициализовать один раз. Передавать конфиг перед инфициализацией js можно разными способами. Выбирайте тот, который будет удобнее. Да, в этом случае может получиться больше файлов, но это намного прозрачнее. Можно всегда в дебагере браузера просмотреть что было передано в конфиг перед инициализацией и таким образом локализовать проблему.
Причём таким способом, вполне можно создавать франкенштейнов, смешивая, разные фреймворки и биндить их, если это возможно.
Nurik
Я имею ввиду JS фреймворки.
Nidzha
Всем Добрый день
Nidzha
Ситуация такая: В профиле пользователя, когда user меняет данные, при сохранении выскакивает ошибка на поле birthday
Nidzha
Дата рождения должен быть date.
Nidzha
echo $form->textField($profile, $field->varname, array('value' => date('d.m.Y', strtotime($profile->{$field->varname})), 'class' => 'datepicker'));
Nidzha
и вот скрипт
Nidzha
<script> $(document).ready(function() { $('.datepicker').datepicker({ dateFormat:'dd.mm.yy', yearRange: '1920:<?= date('Y') ?>', changeMonth:true, changeYear:true }); }) </script>
Nidzha
Все прорыл
Nidzha
В базе тоже поставил все одинаковые
Nidzha
dd.mm.yyyy
Nidzha
Но не в какую, такая же ошибка выходит, в интернете искал без положительных результатов
Nidzha
Кто с таким сталкивался ?