zoukankan      html  css  js  c++  java
  • Cakephp中使用JavaScriptHelper来引入js文件

    页面的head部分的内容在Cakephp中主要是有htmlhelper来进行控制的,而js部分则是由JavaScripthelper来进行控制的,在controller里面设置好:var $helpers = array(’Html’,'Javascript’);就可以在ctp文件中使用JavaScripthelper对象:$javascript了。具体见正文。

    前提是js文件都放在了 webroot/js  目录下面了,下面是范例。

    1、$javascript->link($JsName,0); echo $script_for_layout;

    在  views/controllers/方法名.ctp文件里面,用$javascript->link($JsName,0);来把 webroot/js/jsname.js 文件加载到 views/layouts/default.ctp 的 $script_for_layout 里面去。

    2、echo $javascript->link($JsName,1);

    这句话是直接在views/layouts/default.ctp里面用的,放在head区就可以了,或者放置在 views/controllers/方法名.ctp文件 里面也是可以的。

    3、echo $javascript->includeScript();

    这条语句很牛X,直接把所有的 webroot/js/ 所有js文件 全部读取出来,并打印出来。和php的include函数是一样的感觉,别的语句是生成 <script src=””></script>,这个生成的是<script>js1的内容,js2的内容….< /script>,放在layout的head区域很合适。

    4、echo $javascript->includeScript($JsName);

    这个是上边语句很类似,只是把某个特定的js文件的内容打印出来而已。

     

    让我们来理解 Blog 例子中的代码(不使用 $scaffold)

    • 按照命名约定, 数据库表 posts 对应有 Post 模型类, 定义在 app/models/post.php 中
    • 在 app/controllers/posts_controller.php 中建立控制类 PostsController 使用 Post 模型类
    • 控制类 PostsController 中如果定义 index 动作, 其输出在 app/views/posts/index.thtml 中定义
    • 目录结构

      app

      于是, 请求 http://.../posts/index 使用 app/controllers/ 中(注意此两目录名不出现在请求路径里)控制类 PostsController 的动作 index 来处理, 用 app/views/posts/index.thtml 响应返回显示
      • models
        • post.php
      • controllers
        • posts_controller.php
      • views
        • posts
          • index.thtml
          • view.thtml
          • edit.thtml
          • add.thtml
          • ...
        • layouts
          • default.thtml
    • 在动作 index 结束时会自动调用 render 方法用默认的布局 default.thtml 显示 index.thtml 视图
      • 而布局 default.thtml 除了定义页头页尾等, 其中的 echo $content_for_layout 是实际显示 index.thtml 的地方
      • 在 app/views/layouts/default.thtml 中可以自定义布局以代替默认的布局
    • 动作 index 中的关键代码 $this->set('posts', $this->Post->findAll());这样, 视图 index.thtml 中的数组型变量 $posts 通过模型类 Post 拿到了数据库表 posts 的所有记录
      • 是设定 index.thtml 视图中的变量其名为 posts 的值
      • 而其中 $this->Post 按照命名约定是 Post 模型类
    • 同样, 请求 http://.../posts/view/3 会找到控制类 PostsController 的动作 view 来处理, 用 app/views/posts/view.thtml 响应返回显示, 不过还带有动作参数 $id 值为 3
      • 动作 view 中的代码 $this->set('posts', $this->Post->read(null, $id)); 设定 view.thtml 视图中的变量 $posts
      • 视图 view.thtml 中的代码如 echo $posts['Post']['title'] 显示表 posts 中记录的 id 为 3 的字段 title 的值(温馨提醒中间 Post 是大写的 P)
    • 动作 edit 和 add 都要用到代码 $this->Post->save($this->data) 通过模型类 Post 保存控制类的参量 $this->params 所拥有的数据
      • $this->data 是 $this->params['data'] 的别名, 指表单(form) 通过提交方式 POST 上来的数据

    .:: $html ::.

    举例

    • 或许超链接更简单了 echo $html->link('超链接文字', '超链接地址')
      • 如果当前视图在 app/views/posts/ 目录中, '超链接地址'是这个当前视图目录的相对地址
    • 插入图片不难 echo $html->image('图片地址', array('alt'=>"", 'border'=>"0"))用图片作为超链接稍复杂点, 详细方法参数说明请查 Cake 手册 echo $html->link($html->image('图片地址'), '超链接地址', null, null, false)
      • 图片放在 app/webroot/img/ 目录中, '图片地址'是这个图片存放目录的相对地址
      • 在数组里放图片链接的属性
  • 相关阅读:
    [bbk5102] 第38集 第四章 Flashback Database 02
    index
    [bbk5110] 第41集 第四章 Flashback Database 05
    支持向量机SVM基本问题
    凸优化小结
    博客基本操作
    感知机vs支持向量机
    PAYPAL商户集成指南-IPN&PDT变量列表
    一个IBM人的离职泪:伟大公司,SB老板,苦逼员工 (zz.IS2120.BG57IV3)
    Google Reader 7.1停止服务
  • 原文地址:https://www.cnblogs.com/xuhongfei/p/4321517.html
Copyright © 2011-2022 走看看