点击这里:CakePHP应用开发:第 4章 控制器——编写应用的控制逻辑(2.控制器 参数以及视图 )

  在CakePHP中操作只是控制器个公共思路方法(public methods)表示个链接地址Cake通常链接地址中都含有如下形式后缀:/控制器名称/操作名称遵循这种规则Cake会自动将链接地址映射到控制器某个操作此外每个控制器操作都会自动个视图文件该视图文件包含了显示该操作逻辑思路方法视图文件取决于控制器和操作名称比如如果Books控制器index操作Cake会自动使用/app/views /books/目录下index.ctp视图文件我们经常需要将处理过数据从控制器传送给这些视图文件以便以种合适形式将数据展示给用户

  和视图互动

  CakePHP是通过命名规则来为控制器每个操作合适视图文件控制器也可以将处理过数据传送给这些视图文件为了实现这点我们可以使用控制器Set()思路方法在第 3章节我们见到过了()思路方法使用在这里我们将会深入了解如何在控制器中和视图文件互动

  动手时间:给视图传送变量

  1修改Books控制器index操作:

<?php
 BooksController extends AppController {
var $name = 'Books';
var $uses = .gif' />;
function index {
$this->('page_heading', 'Packt Book Store');
$book = .gif' /> (
'book_title' => 'Object Oriented Programming
with PHP5',
'author' => 'Hasin Hayder',
'isbn' => '1847192564',
'release_date' => 'December 2007'
);
 
$this->($book);
$this->pageTitle = 'Welcome to the Packt Book Store!';
} 
 
 
} 
 
 
?> 


  2用下面这些代码替换掉index.ctp视图文件中代码

<h2><?php echo $page_heading; ?></h2>
<dl>
<lh><?php echo $bookTitle; ?></lh>
<dt>Author:</dt><dd><?php echo $author; ?></dd>
<dt>ISBN:</dt><dd><?php echo $isbn; ?></dd>
<dt>Release Date:</dt><dd><?php echo $releaseDate; ?></dd>
 
</dl> 


  3在浏览其中输入下面这个地址http://localhost/applogic/books/.

  如何回事?

  在index操作中我们使用了思路方法来定义了个名为page_heading视图变量

$this->('page_heading', 'Packt Book Store');

  个参数指定了视图变量名称而第 2个参数这定义了变量在视图文件中我们只是简单输出了$page_heading 变量用它来显示Packt Book Store这个文本($page_heading 变量值已经在控制器中设置好了)

  在index操作中我们新定义了个变量名为$book关联

$book = .gif' /> (
'book_title' => 'Object Oriented Programming with PHP5',
'author' => 'Hasin Hayder',
'isbn' => '1847192564',
'release_date' => 'December 2007'
);


  然后使用思路方法将这个数据传送给视图文件:

$this->($book);

  正如我们所见思路方法也可以只有个参数我们可以使用思路方法来创建并传输个关联(正如上面我们上面所见到那样)Cake会自动将关联所有键/值对在视图中设置好其中键为变量名值为变量值但我们想要为视图设置组变量时我们可是使用这个思路方法方便达成目在这里需要提醒所有带有下划线键都会变成遵循骆驼法则视图变量名像控制器中键名为book_title 和release_date键在对应视图文件中会变成名为$bookTitle和$releaseDate变量、在视图文件里我们显示了用思路方法传输过来关联

  最后在控制器操作中我们定义了个名为$pageTitle变量

$this->pageTitle = 'Welcome to the Packt Book Store!';

  $pageTitle是个特殊属性变量它是用来设置页面标题现在如果我们访问这个页面你会看到下面这个截图页面:



  图片看不清楚?请点击这里查看原图(大图)

Tags:  点击这里

延伸阅读

最新评论

发表评论