CakePHP中的Categories视图

CakePHP中的Categories视图,cakephp,content-management-system,Cakephp,Content Management System,在介绍cakephp创建博客的教程之后,我创建了一个数据库来查看、添加/编辑/删除业务。每个企业都有一个与之关联的州或省,我想知道如何生成一个页面,列出所有的州,如/States和一个页面,如/States/california,并列出加州的所有企业 现在我只有一个页面列出了所有的业务。想知道我将如何设计模型/控制器/视图和路由来处理这个问题。无法在网上找到详细的信息来源,或者我不知道如何查找。因为你是一个新手,我认为从关系开始不是一个好主意,这是你在问题中需要的,也是最复杂的一个。因此我假设你

在介绍cakephp创建博客的教程之后,我创建了一个数据库来查看、添加/编辑/删除业务。每个企业都有一个与之关联的州或省,我想知道如何生成一个页面,列出所有的州,如/States和一个页面,如/States/california,并列出加州的所有企业


现在我只有一个页面列出了所有的业务。想知道我将如何设计模型/控制器/视图和路由来处理这个问题。无法在网上找到详细的信息来源,或者我不知道如何查找。

因为你是一个新手,我认为从关系开始不是一个好主意,这是你在问题中需要的,也是最复杂的一个。因此我假设你的模型关系比较简单:。例如:

/*this is  your state model
 *state table in database should like:id,name
 *and business table in database:id,name,state_id
 */
class State extends AppModel
{
    var $name = 'State';
    var $hasMany = array(
        'Business'=>array(
                'className'=>'Business',
                'foreignKey'=>'state_id',
                )
);   //this means a State can hasMany Businesses while a Business only belongs to one State

}
然后在状态控制器中执行以下操作:

 /*in your state controller*/
 function showBusinessesByState($statename)
 {
     if($statename && $thestate = $this->State->findByName($statename))
     {
         $this->set('state',$thestate);//debug $thestate you'll find data you need
     }
     else
     {
         $this->Session->setFlash("something wrong happens!");
     }
 }
现在,我认为您可以自己处理视图文件,使用$state变量检索数据$thestate,其中还包含一个业务列表

现在在/app/config/routes.php中执行路由部分:

Router::connect('/states/*',array('controller'=>'states','action' => 'showBusinessesByState'));

完成后,您可以通过/states/somestate获得所需信息。当您完成此过程时,您可以尝试用最佳方法解决此问题-。

谢谢,这正是我需要的!我会设法解决这个问题。只是想朝正确的方向推动一下。我将阅读数据库关系。Ok遇到问题。我成功地创建了我的模型/控制器/视图,但是当我尝试查看/声明时,它给了我一个错误:警告512:SQL错误:1054:field list[CORE/cake/libs/model/datasources/dbo_source.php,第549行]中的未知列'state.id',state.state,state.state_abbr,State.id从states作为State,其中1=1我不知道它为什么要查找State.id,因为我将外键设置为State\u id。在索引函数中,我希望它吐出所有内容,所以我有$this->set'states',$this->State->find'all';谢谢你,成功了。我必须将数据库表中的列重命名为state_id到id,state到name。我的观点也是通过路线来实现的=