Yii 2高级应用程序模板是一个骨架Yii 2应用程序,最适合用于开发具有多个层的复杂Web应用程序。该模板包括三个层:前端,后端和控制台,每个层都是一个单独的Yii应用程序。
我有一个具有 rbac 角色的网站,当我因无法访问某些页面而出现错误时,我会收到带有错误的白页。 使用这些代码进行布局但不起作用: 我的网站控制: 公共职能
我试图在 jQuery 中找到运算符,以便在 php 中使用 jq 代码时在下一行编写代码 这是我的工作代码:- 我试图在 jQuery 中找到运算符,以便在 php 中使用 jq 代码时在下一行编写代码 这是我的工作代码:- <?php $addoldgoldrow = ' $(document).on("click",".add_btns",function(e) { e.preventDefault(); var markups = "<tr class=\'rowaccs\'><td><input type=\'text\' class=\'sl_no\' name=\'sl_no[]\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'oweight inputbox input_table1\' name=\'oweight[]\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'ostone_weight inputbox input_table1\' name=\'ostone_weight[]\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'ovd inputbox input_table1\' name=\'ovd[]\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'onet_weight inputbox input_table1\' name=\'onet_weight[]\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'orate inputbox input_table1\' name=\'orate[]\' value=\'' . $metal_rate . '\' style=\'width: 100%\'></td><td><input type=\'text\' class=\'oamount inputbox input_table1 table1_end row_end\' name=\'oamount[]\' style=\'width: 100%\' readonly></td><td><span class=\'rowcloseoldgold\'><i class=\'fa fa-times\' style=\'color: #C11429;\' aria-hidden=\'true\'></i></span></td</tr>"; $("table#old_gold tbody").append(markups); indexassigneroldpurchase(); }); '; $this->registerJs($addoldgoldrow, View::POS_READY); ?> 我正在尝试这样做 <?php $addoldgoldrow = ' $(document).on("click",".add_btns",function(e) { e.preventDefault(); var markups = "<tr class=\'rowaccs\'> <td><input type=\'text\' class=\'sl_no\' name=\'sl_no[]\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'oweight inputbox input_table1\' name=\'oweight[]\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'ostone_weight inputbox input_table1\' name=\'ostone_weight[]\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'ovd inputbox input_table1\' name=\'ovd[]\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'onet_weight inputbox input_table1\' name=\'onet_weight[]\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'orate inputbox input_table1\' name=\'orate[]\' value=\'' . $metal_rate . '\' style=\'width: 100%\'></td> <td><input type=\'text\' class=\'oamount inputbox input_table1 table1_end row_end\' name=\'oamount[]\' style=\'width: 100%\' readonly></td> td><span class=\'rowcloseoldgold\'><i class=\'fa fa-times\' style=\'color: #C11429;\' aria-hidden=\'true\'></i></span></td</tr>"; $("table#old_gold tbody").append(markups); indexassigneroldpurchase(); }); '; $this->registerJs($addoldgoldrow, View::POS_READY); ?> + 运算符不起作用 我尝试了“+”和“+” 哪种运算符最适合连接这些线路? 只需在每行末尾添加 \ 所以你的代码看起来像这样: <?php $addoldgoldrow = ' $(document).on("click",".add_btns",function(e) { e.preventDefault(); var markups = "<tr class=\'rowaccs\'> \ <td><input type=\'text\' class=\'sl_no\' name=\'sl_no[]\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'oweight inputbox input_table1\' name=\'oweight[]\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'ostone_weight inputbox input_table1\' name=\'ostone_weight[]\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'ovd inputbox input_table1\' name=\'ovd[]\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'onet_weight inputbox input_table1\' name=\'onet_weight[]\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'orate inputbox input_table1\' name=\'orate[]\' value=\'' . $metal_rate . '\' style=\'width: 100%\'></td> \ <td><input type=\'text\' class=\'oamount inputbox input_table1 table1_end row_end\' name=\'oamount[]\' style=\'width: 100%\' readonly></td> \ td><span class=\'rowcloseoldgold\'><i class=\'fa fa-times\' style=\'color: #C11429;\' aria-hidden=\'true\'></i></span></td</tr>"; $("table#old_gold tbody").append(markups); indexassigneroldpurchase(); }); '; ?>
大家好 当我尝试创建客户端时,出现错误:设置只读属性:app\models orm\ClientForm::Clientclient 我该如何修复这个错误? 这是我的客户客户(模型) 班级
我正在开发 yii2。我的控制器中有一个名为 MeterpingController 的创建操作。 MeterpingController 类扩展了 Controller { 公共函数 beforeAction($action) { 如果($...
我在 Yii2 中渲染视图时遇到了一个问题,这已经困扰了我几天。渲染工作得很好,直到有一天早上它决定不工作。该视图显示原始 HTML...
我要疯狂地想弄清楚这一点。我有一个表单,可以从数据库中的当前用户加载数据。当我点击提交时,规则被触发,我收到错误消息,但是新的......
我正在尝试从我的基本目录运行 ./yii 。 几个月前我使用了控制台应用程序,然后它就可以工作了。 我不确定发生了什么变化。 我收到以下错误: 异常'
我是 yii2 框架的新人,当我尝试连接两个以上的表时,它没有在 gridview 中加载。 我正在尝试从语言表中获取语言名称,我可以通过用户语言表获取该名称
Yii2:如何重写 yii\db\Query 类以添加带有查询的默认条件
我想创建一个基于云的应用程序,将应用程序 id 和branch_id 存储在会话中,并且我想将application_id 和branch_id 添加到每个数据库查询中。 很简单,我正在重写 f...
我是使用 yii2 框架的初学者。我有一个奇怪的问题。 有时,在我的网站中使用我的用户名和密码登录后,它会向我显示另一个帐户和个人资料,就像我使用另一个用户一样......
我在页脚内有一个订阅新闻通讯表格,该表格显示在所有页面上。为此,我创建了一个订阅者小部件,如下所示: SubscriberWidget.php 我在页脚内有一个订阅新闻通讯表格,该表格显示在所有页面上。为此,我创建了一个像这样的订阅者小部件: SubscriberWidget.php <?php namespace frontend\components; use Yii; use yii\base\Widget; use yii\helpers\Html; use frontend\models\SubscribeNewsletterForm; class SubscriberWidget extends Widget { public function run() { $subscriber_model = new SubscribeNewsletterForm(); return $this->render('_subscribe-newsletter-form.php', [ 'subscriber_model' => $subscriber_model ]); } } ?> 这是 SubscribeNewsletterForm 模型代码: 订阅新闻通讯表格.php <?php namespace frontend\models; use Yii; use yii\base\Model; class SubscribeNewsletterForm extends Model { public $email; public function rules() { return [ [['email'], 'required'], ['email', 'email'] ]; } } ?> 这是我的_subscribe-newsletter-form.php的代码 <?php use yii\helpers\Html; use yii\bootstrap\ActiveForm; use yii\helpers\Url; ?> <h3>Subscribe to Newsletter</h3> <?php $form = ActiveForm::begin(['id' => $subscriber_model->formName(), 'action' => ['project/subscriber'], 'validateOnBlur' => false, 'validateOnType' => false]); ?> <div class="input-group"> <?= $form->field($subscriber_model, 'email')->textInput()->label(false); ?> <span class="input-group-btn"> <?php echo Html::submitButton('Sign Up', ['class' => 'btn btn-primary subscribe-btn']); ?> </span> </div> <?php ActiveForm::end(); ?> <?php $script = <<< JS $('#{$subscriber_model->formName()}').on('beforeSubmit', function(e){ var form = $(this); $.post( form.attr("action"), form.serialize() ).done(function(data){ form.trigger("reset"); }) return false; }); JS; $this->registerJs($script); ?> 在ProjectController.php中我创建了如下操作: public function actionSubscriber() { $subscriber_model = new SubscribeNewsletterForm(); $request = Yii::$app->request; if($request->isAjax && $subscriber_model->load($request->post())){ $subscriber = new Subscriber([ 'email' => $subscriber_model->email ]); $subscriber->save(); } } 这是订阅者模型代码。 订阅者.php <?php namespace frontend\models; use yii\db\ActiveRecord; class Subscriber extends ActiveRecord { public static function tableName() { return 'subscriber'; } } ?> 前端/config/main.php <?php $params = array_merge( require(__DIR__ . '/../../common/config/params.php'), require(__DIR__ . '/../../common/config/params-local.php'), require(__DIR__ . '/params.php'), require(__DIR__ . '/params-local.php') ); return [ 'id' => 'app-frontend', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'controllerNamespace' => 'frontend\controllers', 'components' => [ 'request' => [ 'csrfParam' => '_csrf-frontend', ], 'user' => [ 'identityClass' => 'common\models\User', 'enableAutoLogin' => true, 'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true], ], 'session' => [ // this is the name of the session cookie used for login on the frontend 'name' => 'advanced-frontend', ], 'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ], ], ], 'errorHandler' => [ 'errorAction' => 'site/error', ], /* 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ ], ], */ ], 'params' => $params, ]; ?> 上述代码验证有效,但我无法将电子邮件保存在数据库中。请告诉我我做错了什么。 您的模型需要规则。另外,我总是用表前缀支持的方法替换生成的表名称。另外,我总是喜欢使用时间戳行为来记录创建或更新事物的时间。特别是当您获取联系信息以使用潜在客户时,我会记录时间戳及其 IP 地址。 订阅者.php use yii\behaviors\TimestampBehavior; // ... /** * @inheritdoc */ public static function tableName() { return '{{%subscriber}}'; } /** * @inheritdoc */ public function behaviors() { return [ TimestampBehavior::className(), ]; } /** * @inheritdoc */ public function rules() { return [ ['email', 'filter', 'filter' => 'trim'], ['email', 'required'], ['email', 'email'], ['email', 'string', 'max' => 255], ['email', 'unique', 'targetClass' => '\common\models\Subscriber', 'message' => 'This email address has already been taken.'], [['created_at', 'updated_at'], 'integer'], ]; }
使用amnah身份验证后,用户模块的后端增删改查显示Yii2用户模块而不是用户CRUD
我们一直在使用 Yii2 Advanced App 开发一个项目,并使用自定义引导模板。我已经使用gii生成了crud。所有其他 CRUD 都工作正常。但是用户增删改查显示 Yii2 用户模块 n...
我看到控制器和操作被隐藏的路由,并且 url 的构造类似于 www.domain.com/en/page-33/category-28/product-89?param=some_param。在此路由中,当我尝试获取
我正在建立英语和阿拉伯语的多语言网站 英文网址 阿拉伯语的网址 我想将语言从任何页面完全切换到另一种语言的同一页面 所以我编写了这样的代码...
我正在尝试利用 YII2 REST API(基于高级模板)来创建我自己的服务。 我目前正在成功使用以下 URL 来返回一条“文章”记录: 嗯……
我试图在单击按钮时显示弹出模式。但是,当我单击该按钮时,它会显示一小段时间,然后消失,使屏幕变黑。 下面是我的代码 我试图在单击按钮时显示弹出模式。但是当我点击按钮时,它会显示一小会儿,然后消失,屏幕变黑。 下面是我的代码 <?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打开模式。
我开发了 Angular 和 Yii2 REST 服务。跨域有问题。 下面添加我的 Angular 和 Yii2 REST 代码。 AngularJs :(如“http://organization1.example.com”、“http://
最近在高级模板实习开始学习yii2框架。但我真的不知道什么时候需要使用后端文件夹而不是前端文件夹。如果有人...
我正在尝试在我的 yii2-advanced-app 中使用 codeception 进行功能测试(如此处所述 https://github.com/yiisoft/yii2-app-advanced/blob/master/docs/guide/start -测试.md) 测试...
格式化文本编辑器数据以在 Gridview Yii2 中显示
我正在使用 yii2 gridview, 我有一个名为description 的字段,其中包含所有具有样式和格式的丰富html 文本。 现在我知道如何在 gridview 中显示该数据,并且我可以限制字符...