@yii2ru

Страница 529 из 1721
Константин
24.08.2017
07:27:28
Кто в курсе, почему в yii считает нормально практикой отовсюду обращатся к сервис- провайдерам? Тразакции - сервис-провайдер, рандомная строка - сервис- провайдер, параметры локализации - сервис-провайдер ...

Alex
24.08.2017
07:53:50
Унификация доступа

Человек создает себе подобное

Мы за продуктами идем в розничный магазин, а не к производителю

Google
? ? ? Alex ? ? ?
24.08.2017
08:19:54
А что с зендом не так?

Yura
24.08.2017
08:20:15
Все так) сервис провайдеры тоже везде

Stas
24.08.2017
08:30:48
кто работал в js с Ckeditor?

Dmitry
24.08.2017
08:32:52
много кто

SiZE
24.08.2017
08:33:01
уверен в этом

Dmitry
24.08.2017
08:33:06
Че за бред такие вопросы задавать?

соц опрос?

)))

SiZE
24.08.2017
08:33:22
Из серии "можно вопрос?"

Google
Dmitry
24.08.2017
08:33:54
?

SiZE
24.08.2017
08:33:58
или эти бесконечные темы "помогите"

Stas
24.08.2017
08:34:24
просто пробую вставить текст а эта зараза какого то лешего работает один раз из ста: CKEDITOR.instances['articlemodel-text'].setData(123);

и законогмерности понять немногу

SiZE
24.08.2017
08:34:41
окей, держи нас в курсе

Stas
24.08.2017
08:34:57
Yury
24.08.2017
08:38:25
есть activeform в site/index.php, все работает, как только я выношу её в отедельный файл _callback.php и вызываю на том же месте где она находилась в индексе, получаю ошибку exception 'yii\base\ErrorException' with message 'Call to a member function isAttributeRequired() on null' in D:\OpenServer\domains\uber\vendor\yiisoft\yii2\widgets\ActiveField.php:859 Stack trace: #0 [internal function]: yii\base\ErrorHandler->handleFatalError() #1 {main}

что за напасть такая?

вызываю путем <?= $this->render('_callback')?>

а, кажись понял

поделитесь советом плз, есть активформ обратной связи. кнопка что её вызывают весит в меню, тобишь в меин лейауте. нужно что бы экшн который обрабатывает форму вызывался на разных вьюшках, куда обработчик впихнуть, как такие проблемы решаются средствами yii2, что бы просто не копипастить форму и обработчик на всех вью, контроллерах

Vladislav
24.08.2017
09:00:43
в виджет

и везде виджет подключай

Yury
24.08.2017
09:01:19
понял, спасибо

Crestoff
24.08.2017
09:13:33
Привет!

не в курсе почему в миграциях

$this->float(3) - не работает precision в mysql

какое бы я значение не ставил - в мускуле нет вообще precision

Yura
24.08.2017
09:14:17
$this->double(10,2)

Google
Yura
24.08.2017
09:14:32
или как-то так

Crestoff
24.08.2017
09:14:49
так по доке флоат тож работает

Yura
24.08.2017
09:15:41
ой фу бле

$this->decimal(10, 2)

вот так 100% прокатит

Crestoff
24.08.2017
09:16:11
ща попробую

Yura
24.08.2017
09:16:47
1 - precision, 2 - scale

Crestoff
24.08.2017
09:17:41
скале чо такое ?

Vladislav
24.08.2017
09:18:00
мастшаб

Crestoff
24.08.2017
09:18:32
переводить я умею

в контексте хранения данных что это значит

Crestoff
24.08.2017
09:20:53
$this->decimal(10, 2)
Спасибо большое!

Yura
24.08.2017
09:21:14
перед - после вроде бы

Crestoff
24.08.2017
09:21:34
дада, как в флоате

просто я не знал что 2 число это скале

Yura
24.08.2017
09:21:46
ой ну точнее не так

общее - после запятой

Konstantin
24.08.2017
09:24:39
форму включаешь в layout

Google
Konstantin
24.08.2017
09:25:04
блоку даешь display:none, показываешь кнопкой

обработчик формы в какой-то контроллер

Yury
24.08.2017
09:25:26
блоку даешь display:none, показываешь кнопкой
я думал ты за это и спрашиваешь в плане "показывается джаваскриптом"

Konstantin
24.08.2017
09:25:27
можешь даже через pjax запилить, если тебе такое нравится

что тебе до разных вьюшек, если форма в лейауте?

а даже если нет, положи форму в отдельный файл, и подключай ее, где надо во вьюхах, через $this->render

кстати да, если через pjax, то так и сделай - форму в отдельный файл и рендерь его

при этом в файле в начале проверь, есть ли модель, и если нету, создавай пустую

Admin
ERROR: S client not available

Konstantin
24.08.2017
09:29:16
так ты из вьюх его вызываешь без модели, и форма рендерится пустая

Yury
24.08.2017
09:29:47
я пытался вынести в отдельное вью и рендерить в других, но как обозвать экшн в контроллере в таком случае не пойму

тоесть до этого я имел actionIndex

с обработкой

Konstantin
24.08.2017
09:29:57
а в контроллере рендеришь с моделью, и форма будет заполненная (на случай, если валидация не прошла)

Yury
24.08.2017
09:30:03
теперь она допустим _callback.php

вызываю путем <?= $this->render('_callback')?>

Konstantin
24.08.2017
09:30:35
запили actionContact() в 'siteController`

сейчас пример найду

Yury
24.08.2017
09:32:30
обработчик вот так выглядит $model = new ContactForm(); if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->sendEmail(Yii::$app->params['adminEmail'])) { Yii::$app->session->setFlash('success', 'Спасибо! Наш агент скоро с вами свяжется!'); } else { Yii::$app->session->setFlash('error', 'Упс! Произошла ошибка. Попробуйте еще раз'); } return $this->refresh(); } else { return $this->render('index', [ 'model' => $model, 'dataProvider'=>$dataProvider, ]); }

Konstantin
24.08.2017
09:33:55
public function actionContact() { if (!Yii::$app->request->isPjax) { throw new BadRequestHttpException("PJAX only"); } $model = new ContactForm(); //form submitted inside window if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->render('_contact-success', [ 'model' => $model, ]); } return $this->render('_contact-form', [ 'model' => $model, ]); }

Google
Konstantin
24.08.2017
09:34:04
сделай вот так

а теперь вьюха

Pjax::begin([ 'id' => 'contact-pjax', 'linkSelector' => false, 'enablePushState' => false, 'enableReplaceState' => false ]); $form = ActiveForm::begin([ 'id'=>'contact-form', 'action' => Url::to(['/site/contact']), 'options' => [ 'data-pjax' => 1, ] ]); echo $form->field($model, 'name')->textInput(); echo $form->field($model, 'email')->textInput(); echo $form->field($model, 'question')->textarea(['rows' => 4]); echo Html::submitButton('Submit', ['class' => 'btn btn-green']); ActiveForm::end(); Pjax::end();

ну и вот тот success

Pjax::begin([ 'id' => 'contact-pjax', 'linkSelector' => false, 'enablePushState' => false, 'enableReplaceState' => false ]); echo 'Thank you'; Pjax::end();

все понятно?

Yury
24.08.2017
09:39:07
вроде как, а в чем преимущество пджакс?

Vladislav
24.08.2017
09:40:17
удобство

можно перемещаться к предыдущему состоянию страницы через кнопку назад без перезагрузки

Yury
24.08.2017
09:40:54
тоесть у меня должно быть 3 вьюхи грубо говоря, контакнт, контакт_саксес,и контакт эррор?

Konstantin
24.08.2017
09:49:37
или так, или еще один параметр передавать в эту одну вьюху и по нему решать, что показывать: форму, или сообщение

философски pjax похож на activeform

Yury
24.08.2017
09:50:03
ну я вообще флеши использовал

Konstantin
24.08.2017
09:50:24
простое дефолтное поведение, которое решает 90% задач

не используй флеши, потому что их будет некому рендерить

в пиджаксе

идея ж в том, что пиджакс заменяет блок целиком

в моем примере $("#contact-pjax") в текущем окне браузера заменится на $("#contact-pjax") из ответа сервера

Yury
24.08.2017
09:52:14
понял, спасибо, тоесть, мне по этому примеру нужно 2 вью _contant-form и _contact-success, верно?

Konstantin
24.08.2017
09:52:54
да, можно так

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