这是我正在使用的下拉菜单..
<?php echo $form->labelEx($model,'status'); ?>
<?php echo $form->dropDownList($model,'status',
array('0' =>'In active', '1'=> 'Active'),
array( 'onChange' => 'javascript:description()' )); ?>
Run Code Online (Sandbox Code Playgroud)
如何在动态选择非活动状态时显示文本框以进行说明...
请为初学者推荐一些yii + ajax教程
我希望生成以下标记:
<label>some label here <span>(optional)</span></label>
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,使用Yii labelEx或只是标签?
谢谢
我见过以下代码:
$id = $_GET["user"];
$auth = $_GET["id"];
$sql = 'DELETE FROM categories where user_id = '.$id.' and category_id = '.$auth;
Yii::app()->db->createCommand($sql)->execute();
Run Code Online (Sandbox Code Playgroud)
我被告知这段代码不行,因为它无法允许sql注入.
是因为$ _GET没有被正确过滤?
不会是Yii :: app() - > db-> createCommand($ sql) - > execute(); 避免那样?
或者当我们到达那里时,我们应该已经检查了where子句中的数据?
我遇到了奇怪的问题(?).也许这是记录的功能,但我找不到它.
我有一个来自CActiveRecord的模型类.在模型中,我有一个方法rules来玷污验证规则.
我有控制器的动作whatever.在这个动作中,我正在尝试使用从$ _POST获得的数据来分配模型属性.这是来自conroller的简化代码片段
$model=new SomeModel();
if(isset($_POST['SomeForm']))
{
$model->attributes=$_POST['SomeForm'];
if($model->validate())
{
$model->save();
}
}
Run Code Online (Sandbox Code Playgroud)
问题在于以下内容.使用大量的assiginig并非所有领域都在努力.只有声明了验证规则的文件SomeModel::rules().如果我要为不应该验证的字段分配数据,那么该字段将变为空数据库.
有人可以解释会发生什么吗?
提前致谢
我想在视图> _form.php文件中显示数据库中的最后一个登录ID.我已经在_form.php文件中生成了这样的代码
<div class="row">
<?php echo $form->labelEx($model,'id'); ?>
<?php echo Yii::app()->db->getLastInsertId('Form');?>
<?php echo $form->error($model,'id'); ?>
</div>
Run Code Online (Sandbox Code Playgroud)
这里表格是表格和型号名称.但我仍然得到 ID:0.错误的部分是什么?
是否有一个命令在Yii中对测试数据库执行迁移?
你如何在Yii中正确使用延迟加载?我有两个型号,公司和设置.该关系在公司方面定义为:
'settings' => array(self::HAS_ONE, 'Company', 'settingsId'),
Run Code Online (Sandbox Code Playgroud)
在设置方面:
'company' => array(self::BELONGS_TO, 'Company', 'settingsId'),
Run Code Online (Sandbox Code Playgroud)
现在,为什么这在公司模型中不起作用:
$settings = $this->settings;
echo $settings->someSetting;
Run Code Online (Sandbox Code Playgroud)
错误是
Property "Company.someSetting" is not defined.
Run Code Online (Sandbox Code Playgroud) 我是php的新手,mvc的新手,yii的新手,以及url-rewriting的新手.所以,对不起,如果我问一些非常基本的东西.
我隐藏了index.php(来自yii论坛中讨论的htaccess方法)
在我的urlmanager中,我有这个,
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
'showScriptName'=>false,
Run Code Online (Sandbox Code Playgroud)
我在view/site文件夹中有3个文件.
现在,我的主页应该重定向到"旅程"操作(即应该打开'site/journey.php')
所以,我猜,这将是
'/' => 'site/journey'
Run Code Online (Sandbox Code Playgroud)
它也有效.
现在,我希望'旅程/邀请'应该调用'邀请'动作,即应该打开'site/invite.php'
并且,'journey/linkedin'应该调用'linkedin'动作,即'site/linkedin.php'.
但,
'journey/invite' => 'site/invite',
'journey/linkedin' => 'site/linkedin'
Run Code Online (Sandbox Code Playgroud)
不管用.
此外,有人可以帮助我理解这一点,
<controller:\w+>/<id:\d+>
Run Code Online (Sandbox Code Playgroud)
即什么是url中的控制器以及'w +'是什么意思?
对指南的引用也会有所帮助.
在bool.dev的建议之后编辑:
改变了代码,如你所说(我之前也尝试过,删除所有默认规则).现在我的网址管理员就像,
'/' => 'site/journey',
'journey/invite' => 'site/invite',
'journey/linkedin' => 'site/linkedin',
'<controller:\w+>/<id:\d+>'=>'view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
Run Code Online (Sandbox Code Playgroud)
但它会引发错误
"警告:require_once():open_basedir限制有效.文件(/var/xyz.com /../ yii/framework/yii.php)不在允许的路径中:(/ usr/share/php:/usr/share/pear:/ usr/share/php/libzend-framework-php:/ var/* /tmp:/var/xyz.com)第12行/var/xyz.com/journey.php警告: require_once(/var/xyz.com /../ yii/framework/yii.php):无法打开流:第12行/var/xyz.com/journey.php中不允许操作致命错误:require_once():无法打开所需的'/var/xyz.com/../yii/framework/yii.php'(include_path ='.:/ usr/share/php:/ usr/share/php/libzend-framework-php')in第12行的/var/xyz.com/journey.php'
当我做xyz.com/journey/invite 甚至xyz.com/journey
编辑:
这是一个许可问题,@ bool.dev建议将具体规则放在最佳工作上:)
使用FindByAttributes查询我想从我的数据库中获取最旧的元素.
我的代码:
$oMemberLocked = MembersLocked::model()->findByAttributes(array(
'lockedid' => $this->id,
'request' => 2,
));
Run Code Online (Sandbox Code Playgroud)
MembersLocked对象具有属性"date".
如何获得具有最大日期的元素?
我有一个Yii模型将使用(稍后)多个数据库,表前缀将基于代码.
例如:
AMI_tablename,BMI_ AMI_tablename等
这些所有表都相同但在不同的数据库中.
我想知道如何在运行时向Yii模型提供动态表名?
我尝试使用setter函数,但父类CActiveRecord给出了一个错误,因为它没有从子模型类中获取值.
所以这是我的模型代码(只有我有问题的部分)
class RevShareModel extends CActiveRecord
{
public $prefix;
public static function model($className=__CLASS__)
{
return parent::model($className);
}
/**
* @return string the associated database table name
*/
public function tableName()
{
return $this->prefix . '_revshare_model';
}
Run Code Online (Sandbox Code Playgroud)
现在在我的控制器的某个地方
$obj = RevShareModel::model();
$obj->prefix ="BMI";
$obj->tableName();
$obj->findByPk(1);
exit;
Run Code Online (Sandbox Code Playgroud)
但我得到的错误是:
CDbException
The table "_revshare_model" for active record class "RevShareModel" cannot be found in the database.
C:\wamp\www\framework\db\ar\CActiveRecord.php(2264)
Run Code Online (Sandbox Code Playgroud)
好像当CActiveRecord调用tableName()方法时,它不会获得$前缀.
yii ×10
php ×4
activerecord ×1
ajax ×1
migration ×1
mysql ×1
unit-testing ×1
url-routing ×1
yii-cmodel ×1