我有一个名为MyClass的课程.它位于app/Lib/MyDir/MyClass中.我想使用App:uses()加载它,但无法让它工作.
在CakePHP 1.3中,我将通过以下方式加载它:
App::import('Lib', 'MyDir/MyClass'); //this still works in CakePHP 2.1
Run Code Online (Sandbox Code Playgroud)
在CakePHP 2.1中,我正在尝试:
App::uses('MyClass', 'Lib/MyDir');
Run Code Online (Sandbox Code Playgroud)
当我尝试'新'启动MyClass时,我找不到Class'MyClass'.
是否无法在自定义Lib类上使用App :: uses?我无法继续使用App :: import(),因为如果'App :: import('Lib','MyDir/MyClass');' 在代码路径中出现2x我在第531行的lib/Cake/Core/App.php中遇到'无法重新声明类'错误
我究竟做错了什么?
编辑:所以,如果我做App :: uses('MyClass','MyDir'); 有用.不知道那是不是应该如何行为,但报告错误.
我即将开始使用CakePHP 2.2开发一个新的Web项目,之前主要使用Zend Framework 1.
初看起来,我非常喜欢CakePHP处理模型和底层数据库表的方式,特别是关于快速设置一对多和多对多关系以及最小的麻烦.坦率地说,与我以前在Zend Framework中做事情相比,似乎有一股清新的气息.
然而,在使用Zend Framework的过去几年中,我曾考虑使用Doctrine来提供ZF相当笨拙的模型关系.教义看起来非常强大和灵活.
所以现在我想知道,在我深入了解我的新CakePHP项目之前,我是否还应该考虑将Doctrine用于我新选择的框架?与CakePHP的内置ORM和数据库功能相比,Doctrine带来了什么优势和劣势(没有双关语!)?
array(
[0]=>
[index1]=>something
[index2]=>something else
[index3]=>something more
[1]=>
[index1]=>something
[index2]=>something else
[index3]=>something more
[2]=>
[index1]=>something
[index2]=>something else
[index3]=>something more
)
Run Code Online (Sandbox Code Playgroud)
编辑:所以我想检索以下内容:
array(
[0]=>
[index1]=>something
[index2]=>something else
[1]=>
[index1]=>something
[index2]=>something else
[2]=>
[index1]=>something
[index2]=>something else
)
Run Code Online (Sandbox Code Playgroud)
如何使用cakephp中的Set :: extract函数获取数组的多个索引?
这将检索一个值:
Set::extract($array, '{n}.index1');
Run Code Online (Sandbox Code Playgroud)
但我想获得多个值...比如,index1和index2.
我试过以下的陈述,但无济于事.
Set::extract($array, '[{n}.index1, {n}.index2']);
Run Code Online (Sandbox Code Playgroud)
编辑
$__pages = Hash::merge(
Hash::extract($pages, 'pages.{n}.id'),
Hash::extract($pages, 'pages.{n}.title')
);
pr($__pages);
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[0] => 2
[1] => 4
[2] => 104
[3] => Sample Page
[4] => about us
[5] => Services
) …Run Code Online (Sandbox Code Playgroud) 有时我会在本地实现更改并且它们工作正常,我将它们复制到我的远程Web服务器并且忽略更改.(代码完全相同.)
我进入core.php,将调试更改为3,再次检查......它有效!
我觉得这与缓存有关,但我不知道到底要改变什么.
嗨我希望能够使用find生成一个列表,以便我可以在select helper中使用.但有一个问题.我想要获取id,名称(第一个+最后一个).那我怎么能实现呢.我希望first_name和last_name作为名称加入.我怎样才能实现它.
$this->User->find('all',array('fields' => array('first_name','last_name','id')));
Run Code Online (Sandbox Code Playgroud)
我不能使用模型过滤器和回调请建议我如何在控制器本身中执行此操作.
我想为找不到404页面的页面设置不同的布局.如何为该页面设置不同的布局?
我正在尝试使用CakePHP 2.0运行SQLite3
在这些问题中,我看到可以在CakePHP 1.3中执行此操作:
- 在CakePHP中使用Sqlite3
- 如何将CakePHP连接到SQLite数据库?
但是,这些解决方案对CakePHP 2.0无效.
我配置了文件'database.php',我在CakePHP的起始页面上取得了成功.它能够连接到数据库(但我不知道在哪里可以找到.db3数据库文件).
我使用了以下代码:
public $default = array(
'datasource' => 'Database/Sqlite',
'persistent' => false,
'host' => 'localhost',
'login' => '',
'password' => '',
'database' => 'cake_blog_tutorial',
'prefix' => '',
//'encoding' => 'utf8',
);
Run Code Online (Sandbox Code Playgroud)
我试图找出:
谢谢您的帮助!
我正在尝试添加一些附件到使用mandrill api通过php包装器发送的电子邮件.我尝试了很多不同的东西来尝试成功附加文件,但无济于事.我正在使用cakephp 2.x,但我不认为在这种情况下有任何特别的意义(也许它确实如此?!).我正在使用由mandrill维护的php包装器,网址为https://bitbucket.org/mailchimp/mandrill-api-php
这是代码:
$mandrill = new Mandrill(Configure::read('Site.mandrill_key'));
$params = array(
'html' => '
<p>Hi '.$user['User']['name'].',</p>
<p>tIt is that time of the year again.<br />
<a href="http://my-site.com/members/renewal">Please login to the website members area and upload your renewal requirements</a>.</p>
<p>Kind regards.</p>',
"text" => null,
"from_email" => Configure::read('Site.email'),
"from_name" => Configure::read('Site.title'),
"subject" => "Renewal Pending",
"to" => array(array('email' => $user['User']['email'])),
"track_opens" => true,
"track_clicks" => true,
"auto_text" => true,
"attachments" => array(
array(
'path' => WWW_ROOT.'files/downloads/renewals',
'type' => "application/pdf", …Run Code Online (Sandbox Code Playgroud) 我已经使用CakePHP一段时间了,我仍然不明白/Libvs /Pluginvs 应该怎么做/Vendor.我知道插件基本上是带有自己的控制器等的迷你应用程序.但是有很多情况下,所有这三个看起来都很好.有人可以对此有所了解吗?
我试图删除或更改CakePHP在其表单助手上使用的包装div.
当我使用这段代码时:
echo $this->Form->input('contact', ['label' => false]);
Run Code Online (Sandbox Code Playgroud)
输出是:
<div class="input text">
<input type="text" id="contact" maxlength="255" name="contact">
</div>
Run Code Online (Sandbox Code Playgroud)
而我想要的是:
<div class="myOwnClass">
<input type="text" id="contact" maxlength="255" name="contact">
</div>
Run Code Online (Sandbox Code Playgroud)
我曾经在CakePHP 2上为输入法添加了更多选项,但是在最新的CakePHP版本中这不起作用.有线索吗?
谢谢
cakephp ×10
php ×4
cakephp-2.0 ×3
cakephp-1.3 ×1
cakephp-3.0 ×1
doctrine ×1
doctrine-orm ×1
email ×1
html ×1
mandrill ×1
sqlite ×1