include(label.php): failed to open stream: No such file or directory
(/Applications/AMPPS/www/framework-1.1.17/YiiBase.php:432)
我在yii1存储数据时遇到上述错误。下面是我的模型文件和控制器功能,用于向DB添加数据。我错过了什么吗?
<?php
class account extends CoreModel {
public function tableName() {
return 'account';
}
public function rules() {
return array(
array('id', 'label', 'created_at', 'updated_at', 'required'),
array('id', 'integer'),
array('created_at', 'updated_at', 'safe'),
array('label', 'string', 'max' => 20),
);
}
public function attributeLabels() {
return array(
'id' => 'ID',
'label' => 'Label',
'created_at' => 'Created At',
'updated_at' => 'Updated At',
);
}
}
控制器功能:
function saveDetails(){
$abc = new Account();
$abc->id = Yii::app()->user->id;
$abc->label = "Test";
$abc->save();
echo "done";
exit;
}
答案 0 :(得分:0)
改变这个:
array('id', 'label', 'created_at', 'updated_at', 'required'),
到此:
array(array('id', 'label', 'created_at', 'updated_at'), 'required'),
同样在这里:
array('created_at', 'updated_at', 'safe'),
为:
array(array('created_at', 'updated_at'), 'safe'),
但您不需要将created_at
和updated_at
指定为safe
,因为它们出现在required
规则中。
答案 1 :(得分:0)
似乎您$abc->label
因某种原因触发了自动加载请求。可能是由于库相互冲突。你可以使用CActiveRecord
&#39; s setAttributes()
并像这样重写,以消除魔术方法/属性调用和自动加载混淆。
控制器功能
function saveDetails(){
$abc = new Account();
$abc->setAttributes([
'id' => Yii::app()->user->id,
'label' => "Test"
]);
$abc->save();
echo "done";
//exit;
Yii::app()->end(); // This is the clean exit from a Yii app.
}