Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么Yii标准不能直接起作用?_Php_Yii_Criteria - Fatal编程技术网

Php 为什么Yii标准不能直接起作用?

Php 为什么Yii标准不能直接起作用?,php,yii,criteria,Php,Yii,Criteria,以下标准可以正常工作: $criteria=新的CDbCriteria(阵列)( “条件”=>“Id_菜单=1”, '选择'=>'名称', “限制”=>5, )); $dp1=新的CActiveDataProvider('post',数组( “条件”=>$criteria )); 但是,直接在模型上指定标准不会-它没有效果: $criteria=新的CDbCriteria(阵列)( “条件”=>“Id_菜单=1”, '选择'=>'名称', “限制”=>5, )); $dp1=新的CActive

以下
标准可以正常工作:

$criteria=新的CDbCriteria(阵列)(
“条件”=>“Id_菜单=1”,
'选择'=>'名称',
“限制”=>5,
));
$dp1=新的CActiveDataProvider('post',数组(
“条件”=>$criteria
));
但是,直接在模型上指定
标准
不会-它没有效果:

$criteria=新的CDbCriteria(阵列)(
“条件”=>“Id_菜单=1”,
'选择'=>'名称',
“限制”=>5,
));
$dp1=新的CActiveDataProvider(Mdlfood::model()->find($criteria),array(),);
以下内容也不起作用:

$criteria=新的CDbCriteria(阵列)(
“条件”=>“Id_菜单=1”,
'选择'=>'名称',
“限制”=>5,
));
$model1=新MDL食品;
$model1->findAll($criteria);
$dp1=新的CActiveDataProvider($model1,array(),);
有人能解释为什么我不能直接声明这个配置吗

添加MDL食品
class Mdlfood扩展了CActiveRecord{
公共函数tableName()
{
返回“tblfood”;
}
公共职能规则()
{
返回数组(
数组('name,Url\u picture,Price,Aboute,Id\u foodType,Id\u menu','required'),
数组('name','length','max'=>100),
数组('Url_图片,大约,'length','max'=>2048),
数组('Price,Id\u foodType,Id\u menu','length','max'=>20),
数组('Id,name,Url\u图片,Price,Aboute,Id\u foodType,Id\u菜单,'safe','on'=>'search'),
);
}
公共职能关系()
{
返回数组(
'idMenu'=>array(self::属于'Tblrestmenu','idMenu'),
'idFoodType'=>数组(self::属于'Tblfoodtype','Id\u foodType'),
);
}
公共函数attributeLabels()
{
返回数组(
'Id'=>'Id',
“名称”=>“名称”,
“Url_图片”=>“Url图片”,
“价格”=>“价格”,
“Aboute”=>“Aboute”,
'Id_foodType'=>'Id foodType',
“Id_菜单”=>“Id菜单”,
);
}
公共函数搜索()
{
//@todo请修改以下代码以删除不应搜索的属性。
$criteria=新的CDB标准;
$criteria->compare('Id',$this->Id,true);
$criteria->compare('name',$this->name,true);
$criteria->compare('Url\u picture',$this->Url\u picture,true);
$criteria->compare('Price',$this->Price,true);
$criteria->compare('Aboute',$this->Aboute,true);
$criteria->compare('Id\u foodType',$this->Id\u foodType,true);
$criteria->compare('Id\u menu',$this->Id\u menu,true);
返回新的CActiveDataProvider($this,array(
“条件”=>$criteria,
));
}
公共静态函数模型($className=\uuuuuuu CLASS\uuuuuuu)
{
返回父::模型($className);
}
}
但是,我认为这与模型无关,因为这个标准在ActiveDataProvider中正常工作。

请这样尝试

额外的结束括号,find()->格式不正确

$criteria=new CDbCriteria(array(
        'condition'=>'Id_menu = 1 ',
        'select'=>'name',
        'limit'=>5,
    ));


$dp1 = new CActiveDataProvider(Mdlfood::model()->find($criteria),array()); // extra closing brackets
第二条路

$criteria=new CDbCriteria(array(
        'condition'=>'Id_menu = 1 ',
        'select'=>'name',
        'limit'=>5,
    ));
    $model1 = new Mdlfood;
    $model1->findAll($criteria);
    $dp1 = new CActiveDataProvider($model1,array());

将出现什么错误?无错误,但条件对答案Manadh无效,输入错误,但只能在此处粘贴模型类Mdlfood()?