Model 需要了解模型和数据提供程序的帮助吗

Model 需要了解模型和数据提供程序的帮助吗,model,dataprovider,yii,Model,Dataprovider,Yii,我是Yii的新手,我正在创建一个爱好网站来管理我的食品购物,以此来了解Yii。我正在尝试创建一个页面,其中列出了我的食谱,并在每个食谱旁边有一个+/-按钮,当按下该按钮时,将更新同一页面上的购物列表。所有配方成分和购物清单都存储在SQL数据库中 到目前为止,我有一个名为ShoppingListController的控制器,在我的actionIndex()函数(显示菜谱和购物列表)中,我创建了两个数据提供者和一个模型(用于+/-按钮,它是一个表单),并将它们传递给我的视图,如下所示:

我是Yii的新手,我正在创建一个爱好网站来管理我的食品购物,以此来了解Yii。我正在尝试创建一个页面,其中列出了我的食谱,并在每个食谱旁边有一个+/-按钮,当按下该按钮时,将更新同一页面上的购物列表。所有配方成分和购物清单都存储在SQL数据库中

到目前为止,我有一个名为ShoppingListController的控制器,在我的actionIndex()函数(显示菜谱和购物列表)中,我创建了两个数据提供者和一个模型(用于+/-按钮,它是一个表单),并将它们传递给我的视图,如下所示:

        // Create a shopping list item model
        $shoppingListModel = new TblShoppingListItem;

        // Get the saved shopping list data from the shopping list table
        $shoppingDataProvider = new CActiveDataProvider('TblShoppingListItem', array(
            'criteria'=>array(
                'select'=>array('recipe_id', 'recipe_multiplier')), 
            'pagination'=>array('pageSize'=>500)
        ));

        // Get the recipe ingredient data from the recipe models and order by recipe name           
        $recipeDataProvider = new CActiveDataProvider('TblRecipeIngredient', array(
            'criteria'=>array(
                'select'=>array('recipe_id', 'ingredient_id', 'ingredient_unit_id', 'ingredient_amount'),   
                'with'=>array('recipe','ingredient','ingredientUnit'),
                'together'=>true,
                'order'=>'recipe.name ASC'),
            'pagination'=>array('pageSize'=>500)
        ));

        // Render the 'shoppinglist/show' page
        $this->render('show', array(
            'recipeDataProvider'=>$recipeDataProvider, 
            'shoppingDataProvider'=>$shoppingDataProvider,
            'shoppingListModel'=>$shoppingListModel
        ));
我有点困惑-我似乎需要将模型传递到+/-表单中,我需要第一个数据提供者以便显示我的购物清单,我需要第二个数据提供者以便显示我的配方信息


然而,我想知道我是否真的需要shoppingListModel和shoppingDataProvider(即,两者都是坏习惯)?。我能从模型上得到我需要的信息吗?。我对模型和数据提供者之间的区别感到困惑。

使用或不使用数据提供者是您的选择。我只是在需要分页或gridview时使用数据提供程序,每隔一段时间我只使用模型中的数据


数据提供者提供了额外的数据控制选项,但如果您只需要数据,我认为您必须使用模型。

是否显示旧的购物清单?还是只是现在的?你所说的保存购物清单数据到底是什么意思?你能告诉我配方乘数的意义吗?购物清单和菜谱到底有什么关系?从逻辑上来说,也就是说,你如何解释两者之间的关系?这个问题太宽泛和模糊,无法回答。我建议Mewzer花些时间阅读Yii中的ActiveRecord关系,这可能有助于澄清问题: