我在保存yii2的表格时遇到问题. 我创建了一个具有其他字段的自定义字段Myposts['categoryLevel2'].该字段不在模型中.这是一个条件字段.当我从中发布我的值时,将其值分配给一个模型属性,例如: $categoryLevel3 = $request->post('categoryLevel3'); if(!empty($categoryLevel3)){ $model->category=$categoryLevel3; } 现在,因为categorylevel3在表帖子中不存在,因此它给出了错误. 获得未知属性:Frontend \ Models \ Posts 我知道这个问题.错误是因为在$_POST数组中,现在有一个字段categoryLevel3,并且不在表格中,因此$model->save()正在抛出异常.我尝试了unset($_POST['categoryLevel3')),但这也无效.谁能帮助我? 如何创建一个不在表中的文件
以下是关于 yii2 的编程技术问答
我刚刚开始使用yii\web\DbSession进行会话存储,我的当前表中有33,000行. 我需要所有这些记录吗?我在使用它们吗? 我应该设置某种删除所有旧记录的实现吗? 解决方案 看来,您有一个大项目,因此您有许多用户会议.拥有充满会议本身的大桌不是问题. yii dbsession componge compont " http://www.yiiframework.com/doc-2.0/yii-web-dbsession.html#gcsession(:) - detail" rel =" nofollow noreferrer"> gcsession() Yii会自动关注会话表中过期的记录. 是的,您需要所有这些. 如果放慢了您的应用程序,则可能需要调整DBMS.有一个有用的链接有一个很好的答案: mysql
我有点困惑,因为在这里 他们确实直接调用模型,因此不会通过控制器将其传递. http://www.yiiframework.com/doc-2.0/guide-input -forms.html 滚动到页面底部... echo $form->field($model, 'product_category')->dropdownList( ProductCategory::find()->select(['category_name', 'id'])->indexBy('id')->column(), ['prompt'=>'Select Category'] ); 和这里的指南 http://www.yiiframework.com/doc-2.0/guide-schrenture -views.html 在底部再次有一个最佳的Prictice部分,也有一个主题之一 IS:(视图)不应包含执行DB查询的代码.这样的代码应在模型中完成. 谢谢 解决方案
hi , 我想尝试制作一些动态的侧边栏和内容,我多次触发事件, 这里我的代码: 后端/view/layouts/_sidebar.php use common\component\Hook; use yii\base\Event; Event::trigger(Hook::className(), Hook::SIDEBAR_MENU); 后端/view/ext/index.php use common\component\Hook; use yii\base\Event; Event::trigger(Hook::className(), Hook::PlUGIN_CONTENT); common/component/hook.php namespace common\component; use yii\base\Component; class Hook extends Component{ const SIDEBAR_MENU
向所有YII2归一化的怪胎提出问题. 在YII2中设置非归一化列的最佳位置? 示例,我有模型客户,分支, cashregister 和交易. 在一个完美的世界中,在一个完美的标准化数据库中,我们的交易模型只有cashregister_id, cashregister 将存储branch_id,分支将存储customer_id.但是,由于性能问题,我们发现自己有时必须具有非归一化 交易包含以下内容的模型: cashregister_id branch_id customer_id 创建交易时,我想存储所有3个值.设置 $transaction->branch_id = $transaction->cashRegister->branch_id; $transaction->customer_id = $transaction->cashRegister->branch->customer_id; 在控制器中并不正确. 一种解决方案是在 after
我正在尝试禁用创建项目 Button当用户未登录时,按钮将Hide或disable. . 这是我的状况:
user->isGuest) { Html::a('Create a Project', ['create'], ['class' => 'btn btn-primary btn-xs']); } elseif(Yii::$app->user->identity->username) { Html::a('Create a Project', ['create'], ['class' => 'btn btn-success']); } ?>
它正在工作,但是,当用户登录时,按钮已经被隐藏了! 如何禁用或隐藏YII2中的按钮并解决该问题? 有什么教程吗? 解决方案 如果您只是在用户中检查logged,则使用!Yii::$a
我的表有多个引用 的ohter表 user id name email categories id title user_categories user_id category_id 在这里,用户将有与他/她相关的多个类别 我能够通过遵循 等新记录成功保存这些内容 查看文件: echo $form->field($package_categories, 'category_id')->dropDownList( ArrayHelper::map( StudyMaterialCategories::find()->all(), 'id', 'title'), ['multiple' => true] ); 保存新记录: $model = new Packages(); $package_categories = new PackageCategories(); $request = Yii::$app
我是yii2中的新手,我有一个正确结果的查询: SELECT DISTINCT workloadTeam.project_id, wp.project_name, workloadTeam.user_id, workloadTeam.commit_time, wp.workload_type FROM (SELECT p.id, p.project_name, w.user_id, w.commit_time, w.comment, w.workload_type FROM workload as w, project as p WHERE w.user_id = 23 AND p.id = w.project_id) wp INNER JOIN workload as workloadTeam ON wp.id = workloadTeam.project_id 但是在我的modelsearch.php中,我写道: $user_id = Yii::
PHP Notice 'yii\base\ErrorException' with message 'unserialize(): Error at offset 8189 of 8192 bytes' in C:\xampp\htdocs\final\advanced\vendor\yiisoft\yii2-debug\controllers\DefaultController.php:132 Stack trace: #0 [internal function]: yii\base\ErrorHandler->handleError(8, 'unserialize(): ...', 'C:\\xampp\\htdocs...', 132, Array) #1 C:\xampp\htdocs\final\advanced\vendor\yiisoft\yii2-debug\controllers\DefaultController.php(132): unserialize('a
我正在尝试将验证码添加到登录表格中. 我的环境: yii 2 PHP 5.4.45 TS iis 10.0 Windows 10 in login.php,LoginForm.php和SiteController.php我添加了以下内容(仅显示相关部分): 后端\ views \ site \ login.php: use yii\captcha\Captcha; ... field($model, 'captcha')->widget(Captcha::className()) ?> ... common \ model \ loginform.php: ... public $captcha; ... public function rules() { return [ ... [['username', 'password', 'captcha'], 'required']
我什么时候应该使用什么? 我可以选择在index.php输入脚本文件中定义常数,就像 yiii2指南中说明:params .两者都是每个应用程序,不是真正的全局. 目前,在我看来,如果我想结合这样的价值观,参数似乎不太舒服: define('SOME_URL', 'http://some.url'); define('SOME_SPECIALIZED_URL', SOME_URL . '/specialized'); 此外,与常数相比,访问更多的代码(Yii::$app->params['something']). 所以什么时候应该或应该使用什么? 小型更新:在PHP 7 define()中也支持数组,因此可以将整个参数结构配置为常数.可能更好地支持IDE. 解决方案 i倾向于使用YII应用程序参数.这样做的主要原因是这些参数中持有的值往往会根据代码所运行的环境而改变.因此,我将拥有一个运行的构建系统(我使用因此,任何开发数
我在我的应用程序中使用了 dektrium/yii2-user 并且有一种 user.php 供应商/dektrium 的方法getID() ,可以通过Yii::$app->user->getID()访问此方法,并返回登录的id用户. 但是,还有另一种名为getProfile()的方法,其功能是返回当前登录用户的完整配置文件详细信息.但是,此方法给出了500个内部服务器错误. exception 'yii\base\UnknownMethodException' with message 'Calling unknown method: yii\web\User::getProfile()' in ... ... 我谷歌搜索了这个问题,但什么也没有找到... 帮助我. 解决方案 我相信您可以以这样的方式获取当前登录的用户的配置文件: Yii::$app->user->identity->profile; 因为Yii::$app->user->identit
我正在使用yii2,我有3个表:帖子,粉丝,评论,我想使用joinwith()将其评论和粉丝名称(在粉丝表中)的帖子获取帖子和评论. 我写的是此查询:
facebook_posts::find()->joinwith('fans')->joinWith('comments')->all();
,我为关系添加了这两个功能:
public function getfans() {
return $this->hasOne(Fans::className(), ['id' => 'from_id'])->from(fans::tableName() . ' FBF');
}
public function getComments() {
return $this->hasMany(Comments::className(), ['parent_id' => 'id'])->from(
我需要为ArrayDataProvider的搜索模型提供帮助.假设我有一个数组: $cities = [ ['city' => "Chicago", 'year' => 1984], ['city' => "Washington", 'year' => 2001], ['city' => Manchester", 'year' => 1997], //and so on... ]; 我创建一个arraydataprovider: $provider = new \yii\data\ArrayDataProvider([ 'allModels' => $catalog, 'sort' => [ 'attributes' => ['city', 'year'], ], ]); 然后我创建一个GridView: echo \yii\grid\GridView::widget([
文档指南中有示例: namespace app\controllers; use yii\rest\ActiveController; class UserController extends ActiveController { public $modelClass = 'app\models\User'; } 但我不明白,如何处理动作. 例如: 数据库具有具有多到许多关系的表(通过枢纽表). component 根据传输数据与多个表的共同响应形成共同响应.可以返回数组或一个对象数组. 在命令控制器中使用它时,就像: class LastTweetsController extends Controller { /** * @param int $count * * @throws yii\base\Inval
我正在使用ckeditor及其代码代码段插件在yii2 php框架应用中.当我使用ckeditor编写一些代码时,我想重点介绍语法,但是无论我做什么,我都无法正常工作.我尝试了指南中的所有内容,例如包括CSS和亮点. public $css = [ 'css/site.css', 'highlight/styles/default.css' ]; public $js = [ 'js/site.js', 'highlight/highlight.pack.js' ]; 我正在使用此窗口小部件在我的yii2网站中安装ckeditor: https://github.com/2amigos/yii2-ckeditor-witget 有人可以帮我吗?我该怎么做才能使语法突出显示? 编辑:突出显示在编辑器内部工作,但是我需要在发布代码的页面上. 解决方案 我解决了问题,在我的页面上加载了亮点.pack.js之后,我必须包括hljs.in