Jquery и Cakephp, куда поместить файл / как его назвать? - PullRequest
2 голосов
/ 20 июля 2010

Я смущен этим, так как не могу найти хорошую документацию о том, как это сделать, у меня есть файл jquery с именем "index", расположенный в папке моего сайта cakephp по адресу:

/ приложение / Webroot / JS / index.js

Я пытаюсь включить его на мой взгляд:

<?php
    echo $javascript->link('index', false);
?>

но я получаю:

Fatal error: Call to a member function link() on a non-object in /var/www/site1/app/views/uiemails/index.ctp on line 4 

Я также поместил это в заголовок моего макета:

<?php
    //load the jQuery core
    $javascript->link('jquery-1.4.2.min', false);
?>

Буду признателен за любые советы относительно того, что мне нужно сделать, чтобы заставить это работать .. спасибо

Редактировать

(я использую cakephp версии 1.3.2 Я сейчас попробовал:

поместив это в мой контроллер:

var $helpers = array('Form', 'Html');

тогда, на мой взгляд:

<?php
echo $this->html->script('index', false);
?>

но я все равно получаю:

Fatal error: Call to a member function script() on a non-object in /var/www/site1/app/views/uiemails/index.ctp on line 4 

Ответы [ 4 ]

4 голосов
/ 20 июля 2010

Похоже, вы забыли включить помощник Javascript в свой контроллер.Синтаксис также зависит от того, какую версию CakePHP вы используете.В 1.3.x помощник Javascript устарел, и вместо него вы должны использовать помощник Html.

Ваш контроллер:

<?php
class BakeriesController extends AppController {
    // not required if you're using the Html helper since it's included by default!
    var $helpers = array('Form', 'Html', 'Javascript');
}
?>

Ваш просмотр:

<?php echo $this->Javascript->link('whatever'); ?>

или с CakePHP 1.3.x:

<?php echo $this->Html->script('whatever'); ?>

И в вашей файловой системе:

/app/webroot/js/whatever.js

Соответствующая документация:

0 голосов
/ 11 июня 2013
echo $this->js->link('jquery-1.10.1.min');

Выход:

<a href="/cake/posts/jquery-1.10.1.min" id="link-1138978643">/cake/posts/jquery-1.10.1.min</a>

Попробуйте:

echo $this->Html->script('jquery-1.10.1.min');

Выход:

<script type="text/javascript" src="/cake/js/jquery-1.10.1.min.js"></script>
0 голосов
/ 20 июля 2010

Это не правильно:

 echo $this->html->script('index', false);

Это должно быть:

 echo $html->script('index', false);

Также следует быть осторожным, чтобы не включать любой JavaScript дважды (например, в макете и в представлении).).

0 голосов
/ 20 июля 2010

Ну, кажется, что это работает, когда я делаю это так:

<?php
//load javascript file that will be specific to this view (page)

echo $html->script('index');
?>

Я был сбит с толку (используя скрипт $ this-> html->), так как другие учебники, которые я нашел, говорили об этом, но, по-видимому, это неправильно, по крайней мере в последней версии cakephp.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...