我正在CakePHP中创建一个网站,我对它有点新意.我找不到这方面的好资源,所以你去了:
我有注册用户三个表结构:Users,Addresses和Contacts.我必须使用所有三个表的信息构建一个视图,如:
Full Name: [ ] (from Users) Shipping Address: [ ] (from Address) Mobile Phone: [ ] (from Contact) e-Mail Address: [ ] (from Contact)
处理这种情况的最佳方法是什么?特别是为了储蓄.创建一个新模型来表示这个,它将拥有一个save()方法本身(也许是数据库中的sql视图)创建一个Controller来处理这个视图的binds或unbinds信息
我仍然想知道我将如何处理两个联系人,因为他们将是两个不同INSERT的联系人
我可以挖掘的任何暗示或资源都会很高兴.
在CakePHP中,在URL中放置查询字符串不会导致它被自动解析和拆分,就像通常在直接调用控制器时一样.
例如:
$this->testAction('/testing/post?company=utCompany', array('return' => 'vars')) ;
Run Code Online (Sandbox Code Playgroud)
将导致:
[url] => /testing/post?company=utCompany
Run Code Online (Sandbox Code Playgroud)
通过Web浏览器直接调用url会导致:
[url] => Array
(
[url] => testing/post
[company] => utCompany
)
Run Code Online (Sandbox Code Playgroud)
在不编辑CakePHP源的情况下,有没有办法在运行单元测试时拆分查询字符串?
我正在CakePHP中创建一个Q&A应用程序,我希望在某些情况下排除我的关联.想象一下:
我在第一页上列出了所有问题,使用$ this-> Question-> findAll();. 由于我的模型中有以下关联:
public $hasMany = array('Answer' =>
array('className' => 'Answer',
'order' => 'Answer.created DESC',
'foreignKey' => 'post_id',
'dependent' => true,
'exclusive' => false,
)
);
Run Code Online (Sandbox Code Playgroud)
将在开始页面选择所有答案,这不是最佳选择.我怎么能排除这个特定方法的答案?
谢谢
在过去,我一直在编辑我的所有网站; 并不太关心我的2位访客看到错误信息.
但是,有一天我可能会有超过2位访客.测试我的更改然后使所有更改同时生效的最佳方法是什么?
我应该将单个文件复制并粘贴到子文件夹中并进行编辑,然后在完成后将其复制回来吗?如果我的代码中包含完整的URL(如果我移动它们会破坏)会怎样?也许我可以使用一些.htaccess hackery绕过这个?数据库虚拟测试数据怎么样?我应该欺骗所有MySQL表并参考它们吗?
我正在使用CakePHP来处理我所关注的特定项目,但我很想知道人们正在采用哪种方法与Cake(可能有工具来协助这个?),以及没有框架.
我已经收到很多关于SVN的建议,听起来不错,但不幸的是我的主机不支持它:
我有一个卡在重定向循环中的CakePHP网站.我删除了执行重定向的每一段代码,并且我在Auth对象上关闭了autoRedirect.
这是在我退出网站时发生的,即使在删除所有cookie并且只是尝试加载主页后仍然存在.索引操作在$this->Auth->allow.
我不应该,它一直试图将我重定向到/ users/login然后重定向循环.登录操作也在允许列表中
有没有人有任何想法可能导致这个?
我正在使用CakePHP中的AJAX进行一些实验,它似乎工作,除了返回的视图包含默认模板.我怎样才能摆脱它(甚至只为视图指定一个不同的空模板)?
我已经在我的表属性中添加了一个新列,它已经有(id,form_id(外键),类型,标签,大小,序列号,instr)其中instr是我添加的新列.
我的应用程序在CakePHP和MySQL中.
我已经使用以下代码插入表中的属性但是单独的字段instr没有插入.
function saveFieldname($data)//from untitledfieldname
{
$this->data['Attribute']['form_id'] = $this->find( 'all', array(
'fields' => array('Form.id'),
'order' => 'Form.id DESC'
));
$this->data['Attribute']['form_id'] = $this->data['Attribute']['form_id'][0]['Form']['id'];
$this->data['Attribute']['label'] = 'Label';
$this->data['Attribute']['size'] ='50';
$this->data['Attribute']['instr'] ='Fill';
$this->data['Attribute']['type'] = $data['Attribute']['type'];
$this->data['Attribute']['sequence_no'] = $data['Attribute']['sequence_no'];
$this->Attribute->save($this->data);
}
Run Code Online (Sandbox Code Playgroud)
请建议我..
我在我的域的根目录中安装了cakephp.现在事实证明我需要在那里放置另一个将驻留在子目录中的应用程序.如何在这个目录中禁用蛋糕中的控制器/模型重定向?
根文件夹中的当前.htaccess如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我试过像这样修改它,但无济于事:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^bildbank$ /bildbank/ [L]
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我知道这有点像黑客,但我无法让第二个应用程序与蛋糕玩得很好.
我在CakePHP 1.3中安装了TCPDF,并使用它来生成QR码的PDF.这是一个非常简单的功能,可以创建一个A9大小的页面,两个字符串和一个QR码.QR码用于简单的URL(即'example.com/12345').
我可以在浏览器中加载页面(Safari使用它内置的PDF阅读器.)每次重新加载时,QR码都会略有变化.模块尺寸相同,但数据元素发生了显着变化.我正在使用"L"数据冗余设置.每个调用的字符串完全相同,但QR更改.在观看了一些重载之后,我相信它只会经历3或4种变化.
现在这是真正伟大的部分,它正确扫描.QR的每个排列导致QR读取器中的URL完全相同(iPhone4上的i-Nigma)
有任何想法吗?我做的还是遗失了一些非常愚蠢和明显的东西?提前致谢!
我花了一些时间阅读jquery文档和其他问题。我一生无法弄清楚自己在做错什么。只需将它们放在一起并加载页面,我就能正常工作。但是,当我通过Ajax加载代码时,它不起作用。我通读了一些其他遇到类似问题的人,每个人都说要使用.live,但这对我也不起作用。我究竟做错了什么?
我正在尝试修改表单编码,因此如果选中一个框,它将不会上传文件。
这是通过ajax加载的表单:
<form id="RequestForm" enctype="multipart/form-data" method="post" action="/submit">
Input File: <input name="inputFile" value="" id="inputFile" type="file">
<input name="onDrive" id="change_form" value="1" type="checkbox"> Located on drive
</form>
Run Code Online (Sandbox Code Playgroud)
我也有这段代码。它应该放在原始页面上还是可以放在通过ajax加载的内容中?而且,我必须做些什么才能使其与加载的内容一起使用,因此,选中change_form复选框时,它将更新<form enctype>?
<script>
$(document).ready(function(){
$('#change_form').click(function() {
if($('#change_form').is(":checked")){
// update the apply button to enabled
$('form#RequestForm').removeAttr('enctype');
} else {
$('form#RequestForm').attr('enctype', 'multipart/form-data');
}
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
更新:为了清楚起见,已加载HTML页面。然后,根据用户的选择,通过AJAX加载上面列出的FORM。我还已将表单和脚本添加到AJAX加载的内容中,以便在调用AJAX事件以加载它后将其添加到HTML页面中。
这是一个带有更多代码的简短说明http://pastebin.com/GbWkukQu
cakephp ×9
php ×5
cakephp-1.2 ×2
.htaccess ×1
ajax ×1
dom ×1
jquery ×1
model-driven ×1
mysql ×1
pdf ×1
qr-code ×1
redirect ×1
tcpdf ×1
unit-testing ×1