foreach ($orderStatuses as $orderStatus) {
$name = $orderStatus->group ? $orderStatus->group->name : 'TamaraGoniGusei';
$statusList[$name][$orderStatus->id] = $orderStatus->name ;
}
Перед тем как все удалить, вначале найти нужную запись, если ли такая запись есть, то мы ее не удаляем, а как-то пропускаем. А в таблицу вносим только отличительные данные. Потому, что если я поправлю описание товара, то у меня все равно в промежуточной таблице все удалиться и добавиться по новой.
if ($model->profile) {
echo DetailView::widget([
'model' => $model->profile,
......
}
'urlManagerBackend' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'http://yoursitedomain.ru',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(__DIR__ . '../backend/routes.php'),
],
Yii::$app->urlManagerBackend->createUrl(['controller/action', 'parametr1' => 'value1']),
<?php echo $this->renderPartial('@frontend/views/callback/index.php',["model" =>new Callback()]); ?>
/**
* @inheritdoc
*/
public function behaviors()
{
return [
'timestamp' => [
'class' => TimestampBehavior::className(),
'attributes' => [
ActiveRecord::EVENT_BEFORE_INSERT => ['created_at', 'updated_at'],
ActiveRecord::EVENT_BEFORE_UPDATE => ['updated_at'],
],
],
];
}
$url = \yii\helpers\Url::toRoute(['delete-select']);
$script = <<< JS
$("#delete-select").on("click", function(e){
e.preventDefault()
var keys = $("#w0").yiiGridView("getSelectedRows");
$.ajax({
url: "$url",
type: "POST",
data: {id: keys},
success: function(){
alert("yes")
},
error : function(){
alert("Ошибка при отправке данных: перезагрузите страницу!");
}
})
});
JS;
$this->registerJs($script, yii\web\View::POS_READY);
// Ваш статический метод в модели SizeOneHelper
public static function getSizeList(): array
{
return [
'S (55/56)',
'M (57/58)',
'L (59/60)',
'XL (61/62)',
];
}
// если в $model->size данные хранятся в виде строки, то надо привести к массиву и передать в checkboxList()
$select = explode(',', $model->size);
echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
'item' => function($index, $label, $name, $checked, $value) use ($select){
if(in_array($index, $select)){
$checked = 'checked';
}
return Html::checkbox($name, $checked);
}
])
return Html::checkbox($name, $checked, ['label' => $label]);
// метод в модели SizeOneHelper
public function getSizeName()
{
return ArrayHelper::filter(self::getSizeList(), explode(',',$this->size));
}
// в DetailView получаем строку по названиям размеров
echo DetailView::widget([
'model' => $model,
'attributes' => [
[
'attribute' => 'size',
'value' => function($model){
return implode(',',$model->getSizeName());
}
]
]
]);
public function getSelectSizeList()
{
return explode(',',$this->size);
}
// метод в модели SizeOneHelper
public function getSizeName()
{
return ArrayHelper::filter(self::getSizeList(), $this->getSelectSizeList());
}
// в checkboxList
echo $form->field($model, 'size')->checkboxList(SizeOneHelper::getSizeList(),[
'item' => function($index, $label, $name, $checked, $value) use ($model){
if(in_array($index, $model->getSelectSizeList())){
$checked = 'checked';
}
return Html::checkbox($name, $checked, ['label' => $label, 'value' => $value]);
}
])
//controller
public function actionView() {
$data = [["id" => 1, "checked" => true], ["id" => 2, "checked" => false], ["id" => 3, "checked" => true]];
return $this->render('view', [ 'data' => $data, 'model' => $this->findModel($id), ]);
}
//View
foreach ($data as $key => $value) {
$checked = '';
if ($value['checked'] === true) {
$checked = 'checked';
}
echo "<input type=checkbox id=" . $value['id'] . " $checked>";
}
if (isset($result) && $result){
$this->registerJs("$('#myModal').hide()");
}
Yii::$app->mailer
->compose('contact', [
'someVarName' => $someData,
'someModel' => $this,
'currentUser' => Yii::$app->user->identity,
'mySuperVar' => 'да это она, дайте две'
])
...
class AuthAction extends BaseAuthAction {
protected function authOAuth2($client)
{
if ($client->getName() === 'vkontakte') {
$client->setReturnUrl(Yii::$app->urlManagerFrontend->createAbsoluteUrl(['/user/sign-in/oauth/vkontakte']));
}
return parent::authOAuth2($client);
}
}