yii2 相关问题

Yii2是Yii PHP框架的最新版本(Yii是一个基于组件的高性能PHP框架),版本2.0.18于2019年4月23日发布。

Yii2:定义“ID”以外的 REST API 参数

我正在尝试利用 YII2 REST API(基于高级模板)来创建我自己的服务。 我目前正在成功使用以下 URL 来返回一条“文章”记录: 嗯……

回答 3 投票 0

Yii2:仅在场景上触发的 ActiveRecord 事件

是否有人需要以仅在某些情况下触发的方式绑定 ActiveRecord 事件处理程序? 在理想的情况下,ActiveRecord on() 方法也将采用 $scenarios 参数...

回答 1 投票 0

在Yii2中进行restful调用返回某些字段时如何设置场景

我目前正在使用 AngularJs 制作 Yii2 RESTful 系统。 在我的数据库中,我希望在从系统中的某个点执行特定调用时能够返回几列。 ...

回答 3 投票 0

无法在 yii2 中正确查看弹出模式

我试图在单击按钮时显示弹出模式。但是,当我单击该按钮时,它会显示一小段时间,然后消失,使屏幕变黑。 下面是我的代码 我试图在单击按钮时显示弹出模式。但是当我点击按钮时,它会显示一小会儿,然后消失,屏幕变黑。 下面是我的代码 <?PHP use kartik\select2\Select2; use yii\helpers\Html; use yii\helpers\Url; use yii\widgets\Pjax; use kartik\export\ExportMenu; use kartik\grid\GridView; /* @var $this yii\web\View */ /* @var $searchModel app\models\InstallationsSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ $this->title = 'Installations'; $this->params['breadcrumbs'][] = $this->title; ?> <section class="content-header"> <h1><?= Html::encode($this->title) ?></h1> </section> <section class="content"> <div class="box"> <div class="box-body"> <div id="statusMsg" > <?= Yii::$app->session->getFlash('no');?> <?= Yii::$app->session->getFlash('error');?> <?= Yii::$app->session->getFlash('success');?> <?= Yii::$app->session->getFlash('errors');?> </div> <div class="built" style="overflow: hidden; overflow-y: hidden; height: ?"> <?php $gridColumns =[ [ 'class'=>'kartik\grid\SerialColumn', ], [ 'class' => 'kartik\grid\ActionColumn', 'template' => '{view} {update} {delete}', 'buttons' => [ 'delete' => function ($url, $model) { return Html::a('<span class="glyphicon glyphicon-trash"></span>', '#', [ 'class' => 'kv-row-select', 'data-id' => $model->id, 'data-toggle' => 'modal', 'data-target' => '#deleteModal', 'data-confirm' => false, // Disable built-in confirmation 'data-method' => false, // Disable data-method attribute to avoid default delete behavior ]); }, ], ], 'meter_msn', 'old_ref_no', [ 'attribute' => 'm_sub_div', 'value' => function ($d) { if(is_object($d->subdiv)) return $d->subdiv->name; return ' - '; }, 'filter' => Select2::widget([ 'model' => $searchModel, 'attribute' => 'm_sub_div', 'data' => \common\models\SurveyHescoSubdivision::toArrayList(), 'options' => ['placeholder' => 'Sub-Div'], 'pluginOptions' => [ 'allowClear' => true, ], ]), ], 'consumer_name', 'consumer_address', [ 'label' => 'Meter Installation Location', 'value' => function($model){ return $model['latitude'] . ' , ' . $model['longitude']; } ], 'mount_material', [ 'label' => 'AMR Inst. Date', 'value' => function ($model) { return date("d-m-Y", strtotime($model->sync_date)); }, ], [ 'label' => 'Install Status', 'value' => function ($d) { return $d->istallation_status; }, 'filter' => Html::activeDropDownList($searchModel, 'istallation_status', \app\models\Installations::getInstallStatus(), ['prompt' => "Install Status", 'class' => 'form-control']), ], [ 'label' => 'Meter Type', 'value' => function ($d) { if(is_object($d)) return $d->meter_type; return ' - '; }, 'filter' => Html::activeDropDownList($searchModel, 'meter_type', \app\models\Meters::getMeterTypeValues(), ['prompt' => "Meter Type", 'class' => 'form-control']), ], 'electrician_name', [ 'attribute' => 'created_by', 'value' => function ($model) { if(is_object($model->user)){ return $model->user->username; } return ''; }, 'filter' => Select2::widget([ 'model' => $searchModel, 'attribute' => 'created_by', 'data' => \app\models\User::toArrayList(), 'options' => ['placeholder' => 'Select a User'], 'pluginOptions' => [ 'allowClear' => true, ], ]), ], ]; echo ExportMenu::widget([ 'dataProvider' => $dataProvider, 'columns' => $gridColumns, 'dropdownOptions' => [ 'label' => 'Export All', 'class' => 'btn btn-info', ], 'exportConfig' => [ ExportMenu::FORMAT_PDF => false, ExportMenu::FORMAT_TEXT => false, ExportMenu::FORMAT_HTML => false, ExportMenu::FORMAT_CSV => false, ], 'filename' => 'LESCO_Installation_Data_' . date('d-M-yy') ]); echo GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => $gridColumns, ]); ?> </div> </div> </div> </section> <!-- Delete Confirmation Modal --> <div id="deleteModal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title">Delete Confirmation</h5> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> <p>Are you sure you want to delete this item?</p> <form id="deleteForm" method="post" action="<?= Url::to(['installations/delete']) ?>"> <input type="hidden" name="_csrf" value="<?= Yii::$app->request->csrfToken ?>"> <input type="hidden" id="delete-id" name="id"> <div class="form-group"> <label for="delete-reason">Reason for deletion:</label> <textarea class="form-control" id="delete-reason" name="delete_reason" required></textarea> </div> <input type="hidden" name="deleted_by" value="<?= Yii::$app->user->identity->id ?>"> </form> </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button> <button type="button" id="submitDelete" class="btn btn-danger">Delete</button> </div> </div> </div> </div> <?PHP $script = <<< JS function initializeModalEvents() { $('.kv-row-select').off('click').on('click', function() { console.log('Delete button clicked'); var id = $(this).data('id'); $('#delete-id').val(id); $('#deleteModal').modal('show'); console.log('Modal shown with ID: ' + id); }); $('#submitDelete').off('click').on('click', function(event) { event.preventDefault(); var form = $('#deleteForm'); var reason = $('#delete-reason').val().trim(); if (reason === '') { alert('Reason for deletion is mandatory.'); return false; } console.log('Submitting form'); $.ajax({ url: form.attr('action'), type: 'post', data: form.serialize(), success: function(response) { console.log('Form submitted successfully'); if (response.success) { $('#deleteModal').modal('hide'); $.pjax.reload({container:'#w0-pjax'}); } else { alert('An error occurred while deleting the item.'); } }, error: function() { console.log('Form submission error'); alert('An error occurred while deleting the item.'); } }); }); } $(document).ready(function() { setTimeout(function() { $('#statusMsg').fadeOut('fast'); }, 5000); // <-- time in milliseconds initializeModalEvents(); $(document).on('pjax:success', function() { initializeModalEvents(); }); }); JS; $this->registerJs($script); ?> 图形用户界面 如上图所示,弹出窗口显示了很短的时间,然后关闭。 我已尝试尽可能解决此问题,但我陷入困境。 我怎样才能实现它? 任何帮助将不胜感激。 $('#deleteModal').modal('show'); 删除它,因为“data-toggle”已经默认引导脚本js打开模式。

回答 1 投票 0

Yii2 - 与多列有很多关系

我有一个表message_thread: ID 发件人ID 收件人 ID 我想在我的用户模型中声明一个关系,它将获取所有消息线程,如下所示: 选择 * 来自消息线程 发件人在哪里...

回答 2 投票 0

如何在 yii2 性能中向数千个 Mongodb 文档添加新属性?

我在virtualbox(10核,12 GB RAM)的Linux上运行php + yii2 + mongodb。 yii2-mongodb 已安装。我有一个 csv 文件,其中包含 2 列 100.000 多条记录:自定义标识符(不是 _i...

回答 1 投票 0

Yii2 REST+ Angular 跨域 CORS

我开发了 Angular 和 Yii2 REST 服务。跨域有问题。 下面添加我的 Angular 和 Yii2 REST 代码。 AngularJs :(如“http://organization1.example.com”、“http://

回答 3 投票 0

远程服务器上的 YII 2 REST CORS 问题

我开发了一个 Yii2 REST API 应用程序。本地一切正常。 我已将应用程序部署到远程服务器。我可以通过 Postman 获得 api 响应。但是当我尝试制作一个

回答 2 投票 0

使用 yii-jui 进行 Ajax 更新后的 JQuery 可排序初始化

我遇到了一个问题,正在寻找在不改变 Yii2 框架的情况下解决它的最佳方法。 我有一个页面,其中包含可以排序的元素。我正在使用 yii-jui 可排序...

回答 2 投票 0

Yii2 控制台脚本不工作

我想每周自动下载我的数据库备份。我在 Windows 上使用 xampp。我用谷歌搜索了一下,发现我必须在我的缺点中使用 Windows 任务计划程序和操作脚本...

回答 1 投票 0

在 YII2 中从空值创建默认对象

导致问题的代码 foreach($items 作为 $itemData){ $item = 新的PurchaseItem(); $item->internal_product_id = (int)$itemData['internal_product_id']; $项目->数量 = (浮点数)$

回答 1 投票 0

Yii2 REST 查询

嘿。 我有一个 ProductController ,它扩展了 yii est\ActiveController。 问题是我如何通过 HTTP GET 请求进行查询。 例如:http://api.test.loc/v1/products/search?name=iphone ...

回答 7 投票 0

模型方法“addError”在 yii2 中不起作用

我在yii2中构建了一个自定义的登录表单,源代码如下所示: 我在 yii2 中构建了一个自定义的登录表单,源代码如下所示: <?php /* @var $this yii\web\View */ /* @var $form yii\bootstrap\ActiveForm */ /* @var $model app\models\LoginForm */ use yii\helpers\Html; use yii\bootstrap\ActiveForm; use yii\captcha\Captcha; $this->title = 'Login'; $this->params['breadcrumbs'][] = $this->title; ?> <div class="card-body login-card-body"> <p class="login-box-msg">Вход</p> <?php $form = ActiveForm::begin([ 'id' => 'login-form', 'layout' => 'horizontal', 'method' => 'post', 'fieldConfig' => [ 'options' => [ 'tag' => false, ], 'template' =>'{input}' ], ]); ?> <div class="form-group has-feedback"> <?= $form->field($model, 'username')->textInput(['class' => 'form-control', 'placeholder' => 'Логин']); ?> <span class="fa fa-user form-control-feedback"></span> <p class="help-block help-block-error "></p> </div> <div class="form-group has-feedback"> <?= $form->field($model, 'password')->passwordInput(['class' => 'form-control', 'placeholder' => 'Пароль']); ?> <span class="fa fa-lock form-control-feedback"></span> <p class="help-block help-block-error "></p> </div> <div class="row"> <div class="col-8"> <?= $form->field($model, 'captcha')->widget(Captcha::className(), ['captchaAction' => 'panel/captcha','template' => '<div class="captcha_img"><a href="#">{image}</a> </div>' . 'Капча{input}', ])->label(FALSE); ?> </div> </div> <br> <div class="row"> <div class="col-8"> <div class="checkbox icheck"> <label> <input type="checkbox"> Запомнить </label> </div> </div> <!-- /.col --> <div class="col-4"> <?= Html::submitButton('Вход', ['class' => 'btn btn-primary btn-block btn-flat', 'name' => 'login-button']) ?> </div> <!-- /.col --> </div> <?php ActiveForm::end(); ?> </div> 如您所见,我已将 ActiveForm 剥离了自动生成的标签,并剥离了标签。我有一个来自 yii2-base-app 的标准表单模型,它处理身份验证,模型: <?php namespace app\models; use Yii; use yii\base\Model; /** * LoginForm is the model behind the login form. * * @property User|null $user This property is read-only. * */ class LoginForm extends Model { public $username; public $password; public $rememberMe = true; public $captcha; private $_user = false; /** * @return array the validation rules. */ public function rules() { return [ // username and password are both required [['username', 'password','captcha'], 'required'], // rememberMe must be a boolean value ['rememberMe', 'boolean'], // password is validated by validatePassword() ['password', 'validatePassword'], ['captcha', 'captcha', 'captchaAction'=> 'panel/captcha'] ]; } /** * Validates the password. * This method serves as the inline validation for password. * * @param string $attribute the attribute currently being validated * @param array $params the additional name-value pairs given in the rule */ public function validatePassword($attribute, $params) { if (!$this->hasErrors()) { $user = $this->getUser(); if (!$user || !$user->validatePassword($this->password)) { $this->addError($attribute, 'Incorrect username or password.'); } } } /** * Logs in a user using the provided username and password. * @return bool whether the user is logged in successfully */ public function login() { if ($this->validate()) { return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0); } return false; } /** * Finds user by [[username]] * * @return User|null */ public function getUser() { if ($this->_user === false) { $this->_user = User::findByUsername($this->username); } return $this->_user; } } 登录工作正常,但是$this->addError($attribute, 'Incorrect username or password.');这条线实际上不起作用。当调试器点击它时,浏览器中不会发生任何事情,如果我输入无效的登录/密码,则不会将错误消息添加到输入中。我该如何解决这个问题? 这就是罪魁祸首:'template' =>'{input}'。请参阅 Yii 2 文档。 当您定义了 template 时,如下: <?= $form->field($model, 'password')->passwordInput(['class' => 'form-control', 'placeholder' => 'Пароль']); ?> 就是您所需要的。您尝试在视图文件上定义的标记将为您呈现。 该方法$this->validate()在验证之前清除所有自定义错误。 向该方法添加 false 参数,如下所示:- $this->validate(null, false) 尝试在您的字段下方使用它来显示验证错误 <?= Html::error($model, 'field_name', ['class' => 'help-block', 'style' => 'color: red;']) ?>

回答 3 投票 0

为什么列名的别名是小写而不是预期的?

在临时阶段,我正在 Yii2 框架上使用 PHP 7,其中我与 MySQL 8 数据库有连接。 在生产中,代码在 PHP 5.6 上运行,具有相同的 Yii2 框架,我...

回答 1 投票 0

Yii2 - 数据库查询缓存如何工作?

鉴于 公共函数 getScheduleSelect() { $持续时间= 86400; // 缓存查询结果1天(60*60*24秒)。 $dependency = new DbDependency(); $dependency->sq...

回答 1 投票 0

Yii2 GridView 对关系列的过滤没有响应

我正在尝试过滤关系数据列。 在我的搜索模型中,我添加了该字段 公共函数属性() { // 将相关字段添加到可搜索属性中 返回数组...

回答 1 投票 0

将关联数组插入到 Yii2 迁移中

数据库中有4张表:月份、类型、价格、吨位 有一个以下类型的数组: '价格'=> [ '大豆' => [ '一月' => [ 50 =&g...

回答 1 投票 0

Yii2 JWT 401 未经授权

请帮我解决这个问题。我想尝试 sizeg/yii2-jwt (https://github.com/sizeg/yii2-jwt)。我按照分步使用示例进行操作,但总是遇到授权问题。我也想要...

回答 2 投票 0

Yii2迁移中如何设置特定列的字符集

我在 Yii2 中进行了迁移,我尝试在其中创建一个表。我为表设置了字符集,但我不知道如何为特定列设置字符集。 例如: $this->createTable('some_table', [ ...

回答 3 投票 0

Yii2进阶,什么时候用前端文件夹,什么时候用后端文件夹?

最近在高级模板实习开始学习yii2框架。但我真的不知道什么时候需要使用后端文件夹而不是前端文件夹。如果有人...

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.