我有一个这样的表:(id,name,version,text).(名称,版本)是唯一键,我如何制定规则来验证这一点.
我想强制所有用户在访问我的网站页面之前登录.我已经关注了Larry Ullman的教程强制登录Yii中的所有页面.
根据教程,您可以对某些页面进行例外处理,以避免重定向到登录页面.为了检查当前控制器,它已经检查了$_GET
值.我的问题是我曾经习惯urlManager
重写URL并$_GET
给我一个空值.我有什么方法可以用来获得当前控制器和我班级成绩的动作吗?
我尝试了以下但是在组件类的范围内无法访问它:
Yii::app()->controller->getId
Run Code Online (Sandbox Code Playgroud) 我想在表格的第七位添加一列,我正在使用
$this->addColumn('table_name','column_name','type');
Run Code Online (Sandbox Code Playgroud)
最后添加列.有什么方法我可以提到添加列的地方吗?或者在列之后的任何关键字关键字中添加我的新列,例如,密码列.我从Yii Doc那里学到了很多移民
我试图将数据放在yii的隐藏文本中,但我不知道如何.我需要一个类似于常规php语法的代码:
<input type="hidden" name="field_name" value="a"/>
Run Code Online (Sandbox Code Playgroud)
它应该是一个静态值为a的字段.我只需要它与我的$ _POST变量一起进行错误检查.
是否有可能避免修改模型和控制器只是为了把字段放入?我不能使用gii因为我只有代码片段与我.虽然我对yii几乎没有了解所以我不知道我是什么我说最后两句话是对的.
控制器:
controllers
|-FooController.php
|-BarController.php
Run Code Online (Sandbox Code Playgroud)
观点:
view
|-foo|
| |-index.php
| |-error.php
|
|-bar|
|-index.php
Run Code Online (Sandbox Code Playgroud)
如何使用条形控制器的动作呈现error.php视图?我试过了:
$this->render('foo/error');
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我正在尝试使用Yii构建一个多页面的表单,但我对PHP和Yii很新,我想知道编写多页面表单的最佳实践是什么.到目前为止,我打算做的是添加一个名为"step"的隐藏字段,其中包含用户在表单中的当前步骤(表单分为3个步骤/页).所以考虑到这一点,这就是我打算如何处理用户点击Controller中的上一个/下一个按钮:
public function actionCreate()
{
$userModel = new User;
$data['activityModel'] = $activityModel;
$data['userModel'] = $userModel;
if (!empty($_POST['step']))
{
switch $_POST['step']:
case '1':
$this->render('create_step1', $data);
break;
case '2':
$this->render('create_step2', $data);
break;
}else
{
$this->render('create_step1', $data);
}
}
Run Code Online (Sandbox Code Playgroud)
这种方法有意义吗?或者我离开基地,在Yii/PHP中有更好,更优化的方法吗?
谢谢!
我在Yii框架的JQRelcopy模块中遇到了CJuiDatePicker的问题.
我使用这个模块,因为我有一个带有datepicker字段的表单,可以根据用户的意愿复制多次.
如果我放一个普通字段(没有datepicker),模块工作正常,但是一旦我添加了模块CJuiDatePicker,它也是Yii框架的一个模块,我就会出现一个空白页面.我按照以下教程:http://www.yiiframework.com/extension/jqrelcopy/解释了包含CJuiDatePickerm的表单中的集成jqrelcopy,这正是我需要的.
我研究了这个问题,我发现当我在我的小部件JQRelcopy的属性中使用以下行时,会出现问题:
'jsAfterNewId'=> JQRelcopy :: afterNewIdDatePicker($ datePickerConfig),
在
$ this-> widget('ext.jqrelcopy.JQRelcopy',array(
Run Code Online (Sandbox Code Playgroud)'id' => 'copylink', 'removeText' => 'remove', //add the datapicker functionality to the cloned datepicker with the same options 'jsAfterNewId' => JQRelcopy::afterNewIdDatePicker($datePickerConfig),
));
我看了几个论坛,一个人遇到了和我一样的问题.
你能帮助我吗?
对不起我的英语不好
我有以下情况的PHP:
$inputs = "1,2,3,4,5";
$sql = "SELECT * FROM obj WHERE id IN(:input)";
$commond = Yii::app()->db->createCommand($sql);
$commond->bindValue(":input", $inputs , PDO::PARAM_STR);
Run Code Online (Sandbox Code Playgroud)
我用yii提供db函数:
$inputs = "1,2,3,4,5";
$sql = "SELECT * FROM obj WHERE id IN(:input)";
$commond = Yii::app()->db->createCommand($sql);
$commond->bindValue(":input", $inputs , PDO::PARAM_STR);
Run Code Online (Sandbox Code Playgroud)
但查询结果是正确的,所以如果这样我该怎么办?
如何在YII CConsoleApplication应用程序中获取基本URL.
我尝试了'Yii :: app() - > request-> getBaseUrl(true)'并最终出现以下错误.
__PRE__
我使用PHPword在我的Web应用程序中创建一个word文档,但我没有实现列表.我使用了以下代码:
$PHPWord = new PHPWord();
$temp = $PHPWord->loadTemplate('temp.docx');
$section = $PHPWord->createSection();
$section->addListItem('List Item 1', 0);
$section->addTextBreak(1);
$temp->setValue('Value1', $section);
$temp->save('list.docx');
Run Code Online (Sandbox Code Playgroud)
此代码无效.我设法在新文档中创建列表,但我无法将列表添加到模板(我无法将列表分配给特定值).我该如何添加列表?