Yii2是Yii PHP框架的最新版本(Yii是一个基于组件的高性能PHP框架),版本2.0.18于2019年4月23日发布。
我有表郎: 编号 |语言名称 表 2:消息: 编号 |消息代码 表3:词典 身份证号 |消息 ID |语言 ID |翻译 我想把语言带入gridview。格式:
Yii2 多语言 slug 和语言切换器将“尊重”翻译的 slug 的
问题是 - 我不知道如何切换到翻译的 slug: 我使用 lav45/yii2-translated-behavior 实现了多语言 slugs。 数据库非常简单: 投资组合模型: 编号 |创造...
使用amnah身份验证后,用户模块的后端增删改查显示Yii2用户模块而不是用户CRUD
我们一直在使用 Yii2 Advanced App 开发一个项目,并使用自定义引导模板。我已经使用gii生成了crud。所有其他 CRUD 都工作正常。但是用户增删改查显示 Yii2 用户模块 n...
如何获取Connection中CreateCommand的sql
Yii::$app->db->createCommand($sql)->queryAll(); 如何获取$sql 需要记录createCommand中的所有sql 它已被用于许多地方。如何记录每个请求执行了哪些sql...
我有一个项目,用户必须像朋友一样相互联系。所以我决定通过表“连接”来连接它们。看来是权利了但当我试图寻找朋友时
我看到控制器和操作被隐藏的路由,并且 url 的构造类似于 www.domain.com/en/page-33/category-28/product-89?param=some_param。在此路由中,当我尝试获取
维护 Yii2 GridView 页面更改上的 Bootstrap 选项卡
我有一个页面有 5 个引导选项卡。当我在任何选项卡上更改寻呼机时,都会移动到第一个选项卡。 如何激活用于更改寻呼机的选项卡。 整个页面有 5 个 dataProvider。埃克...
我正在建立英语和阿拉伯语的多语言网站 英文网址 阿拉伯语的网址 我想将语言从任何页面完全切换到另一种语言的同一页面 所以我编写了这样的代码...
我在 Yii2 中使用 Codeception 进行验收测试,但无法访问我的模型,因为命名空间不适用于这些测试。 我的测试/_bootstrap.php中有这个 需要(_...
Yii2:未找到(#404):无法找到标记为“5578effb0790c4.13707485”的调试数据
我在页面底部看到了这个,调试栏应该在的地方。问题是什么? 此请求:http://localhost:81/xxx/web/debug/default/toolbar?tag=5578f180963e82.28312577 返回...
嗨我在controllers文件夹内的文件夹中构建了一个控制器 我尝试访问我的控制器及其视图,但我不能总是出现错误 404 请告诉我有什么问题 这是详细信息 这...
Yii2 - 使用 kartik fileInput 上传表单中的多个图像
现在,kartik 小部件的问题出现在表单视图中,在您上传第一张照片后(在提交表单之前),对于其他下一张照片,它只会覆盖之前的照片和唯一的
我正在尝试使用 yii2 将 ckeditor 和 ckfinder 集成到项目中。 我已将 ckeditor 和 ckfinder 文件夹放在 root/vendor 中并进行了必要的调整,ckeditor 工作正常,ckfi...
在Yii2主应用程序中,我们如何向第三方模块附带的模块(或ActiveRecord)添加验证规则? 我们可以修改现有规则吗?假设我们有以下规则: ['cu...
如何将自定义 HTML 放入 Yii2 GridView 标题中?
引导程序中有这个标签,它会自动显示缩写词的弹出窗口。我想将此标签插入到带有属性 nam 的 gridview 中的某个标头...
当 'urlManager' 数组不存在时,如何在 Yii2 中管理路由?
我继承了一个Yii2应用程序来维护,虽然我使用普通的PHP和Laravel,但我对这个框架了解不够。因此,我有时会感到非常没有安全感和困惑。 为了考试...
我正在尝试利用 YII2 REST API(基于高级模板)来创建我自己的服务。 我目前正在成功使用以下 URL 来返回一条“文章”记录: 嗯……
是否有人需要以仅在某些情况下触发的方式绑定 ActiveRecord 事件处理程序? 在理想的情况下,ActiveRecord on() 方法也将采用 $scenarios 参数...
在Yii2中进行restful调用返回某些字段时如何设置场景
我目前正在使用 AngularJs 制作 Yii2 RESTful 系统。 在我的数据库中,我希望在从系统中的某个点执行特定调用时能够返回几列。 ...
我试图在单击按钮时显示弹出模式。但是,当我单击该按钮时,它会显示一小段时间,然后消失,使屏幕变黑。 下面是我的代码 我试图在单击按钮时显示弹出模式。但是当我点击按钮时,它会显示一小会儿,然后消失,屏幕变黑。 下面是我的代码 <?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">×</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打开模式。