当我删除'type'时我设置了isActive = 0;
每种"类型"都有很多"因果关系"
因此,当禁用某种类型时我想禁用每一个因果关系
在类型控制器中我正在尝试这个
$model = $this->loadModel($id);
$model->isActive = 0;
foreach ($model->causalsObj as $key => $causal ) {
$causal = CausalController::delete($causal->id);
}
$model->save();
Run Code Online (Sandbox Code Playgroud)
这不起作用(在ajax调用期间PHP错误)
我想清楚我对以下命令的理解:
Yii::app()->db->getLastInsertId() ;
Run Code Online (Sandbox Code Playgroud)
它是否检索此特定用户或连接的最后一个插入?在Yii,如果我使用Yii :: app() - > db for db连接,它是否可以干扰其他用户?
此命令是否检索特定用户或最近插入的最后一个插入ID,而与用户无关.
我正在开发我的第一个YII网站.我对YII数据库有一些疑问.
在yii中有三种查询数据库的方法.
在Query Builder查询的情况下,我们明确选择表格
$user = Yii::app()->db->createCommand()
->select('id, username, profile')
->from('tbl_user') // explicitly choosing the table
->join('tbl_profile p', 'u.id=p.user_id')
->where('id=:id', array(':id'=>$id))
->queryRow();
Run Code Online (Sandbox Code Playgroud)
那么我应该在哪里编写查询构建器查询?如果我在相应的表模型中写它们有什么好处吗?
如果我使用DAO或查询构建器,哪个类应该扩展我的模型?
如果我遵循DAO方法或查询构建器方法,如何验证用户输入?
我正在尝试使用这样的外键创建表(使用迁移)
public function safeUp()
{
$this->createTable('tbl_category', array(
'id'=>'pk',
'title'=>'string NOT NULL',
'url'=>'string NOT NULL UNIQUE'
));
$this->addForeignKey('FK_category', 'tbl_product', 'category_id', 'tbl_category', 'id', 'CASCADE', 'NO ACTION');
}
Run Code Online (Sandbox Code Playgroud)
它完全适用于MySQL,但现在我想使用SQLite,这个代码给出了一个错误,在SQLite中我无法将外键添加到现有表中,所以我查看了createTable方法的定义:
public integer createTable(string $table, array $columns, string $options=NULL)
Run Code Online (Sandbox Code Playgroud)
并尝试使用$optionsparam在那里添加我的外键,但它生成了这个:
CREATE TABLE 'tbl_category' (
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
"title" varchar(255) NOT NULL,
"url" varchar(255) NOT NULL UNIQUE
)
CONSTRAINT FK_category
FOREIGN KEY tbl_product(category_id)
REFERENCES tbl_category(id)
ON DELETE CASCADE ON UPDATE NO ACTION
Run Code Online (Sandbox Code Playgroud)
显然,"CONSTRAINT ..."代码应该在这些括号内,但事实并非如此.那么如何创建这个外键呢?
我想使用Yii查询构建器执行以下查询
$ sql =“从(1,2,3,)中的用户标识的用户选择*”
请帮助..
在CakePHP上,我们可以使用ALL POST/GET
$this->params
Run Code Online (Sandbox Code Playgroud)
在Yii,我不确定它是否具有等价物.只看到我想得到一个字段值,无论是(POST/GET),但我需要指定它.
Yii::app()->request->getParam('email')
Run Code Online (Sandbox Code Playgroud) 我在项目中的前任没有在表格中保存下拉列表值; 他们在html文件中...这家伙也没有$form->dropdownList()用来创建选择......
当然,我现在遇到了在编辑时预先选择值的巨大问题; 因此,我改变了所有<select>到$form->dropdownList().
但现在我有一个不同的问题,如
echo $form->dropdownList($model,'location',
array("Art","Gallery","Bar","Club"));
Run Code Online (Sandbox Code Playgroud)
现在为DB生成整数值...
我知道我可以像这样设置显示值:array("Art"=>"Art")....但我宁愿避免这种情况 - 有一堆视图直接显示值...... :(
有没有办法告诉yii DB值应与显示值相同?
我正在尝试按照此官方教程安装yii-user的扩展
http://www.yiiframework.com/extension/yii-user/#hh2
但是我遇到了一些问题,特别是当我添加它时
user'=>array(
// enable cookie-based authentication
'class' => 'WebUser',
'allowAutoLogin'=>true,
'loginUrl' => array('/user/login'),
Run Code Online (Sandbox Code Playgroud)
到配置主.当我添加此代码时,我有此消息错误
include(WebUser.php)[function.include]:无法打开流:没有这样的文件或目录
任何线索?我以前需要做点什么吗?
提前致谢

这是我的网格视图.当我点击"电子邮件"标题时,标题旁边有一个箭头.但gridview没有重新加载来排序数据.
那么,问题是什么?我该怎么找到它?
谢谢...
================================================== =====
这是我的看法:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'users-grid',
'dataProvider' => $model->search(),
'afterAjaxUpdate' => 'function(id, data) { var regex = data.match("data-counter=\"(.*)\""); $("#countUser").text(regex[1]); }',
'filter' => $model,
'template'=>'{items}<div class="nav-controller">{pager}</div>',
'columns' => array(
array(
'class' => 'CCheckBoxColumn',
'selectableRows' => '2',
),
array(
'htmlOptions' => array('width'=>10),
'header' => 'No.',
'value' => '$this->grid->dataProvider->pagination->currentPage * $this->grid->dataProvider->pagination->pageSize + ($row+1)',
),
array(
'name' => 'full_name',
'value' => '$data->first_name . \' \' . $data->last_name',
),
'email',
array(
'name' => 'gender',
'value' => '($data->gender == 1) …Run Code Online (Sandbox Code Playgroud) 我尝试在我的用户表中更新de last_login_time,但time()总是比使用该函数的updatedTime行为高5h
public function behaviors()
{
return array(
'timestamps' => array(
'class' => 'zii.behaviors.CTimestampBehavior',
'createAttribute' => 'create_time',
'updateAttribute' => 'update_time',
'setUpdateOnCreate' => true,
)
);
}
Run Code Online (Sandbox Code Playgroud)
我更新last_login_time的功能非常简单:
private function userLogedin()
{
$user = User::model()->findByPk($this->auth->user_id);
$user->last_login_time = date('Y-m-d H:i:s',time());
return $user->save();
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能拥有与行为相同的时间?有没有更好的方式来创建这种更新?
非常感谢你!我是Yii的新手,这是我的第一个应用程序,所以请善待^^