我正在使用CakePHP开发一个restful API,我正在尝试实现一个自定义授权,授权用户使用ACL,代码看起来像
<?php
App::uses('BaseAuthorize', 'Controller/Component/Auth');
class ApiAuthorize extends BaseAuthorize {
public function authorize($user, CakeRequest $request) {
$allowed = false;
$Acl = $this->_Collection->load('Acl');
list($plugin, $userModel) = pluginSplit($this->settings['userModel']);
$action = $this->action($request);
$cacheName = 'permissions_' . strval($user['id']);
if (($permissions = Cache::read($cacheName, 'permissions')) === false) {
$permissions = array();
Cache::write($cacheName, $permissions, 'permissions');
}
if (!isset($permissions[$action])) {
$User = ClassRegistry::init($this->settings['userModel']);
$User->id = $user['id'];
$allowed = $Acl->check($User, $action);
$permissions[$action] = $allowed;
Cache::write($cacheName, $permissions, 'permissions');
$hit = false;
} else {
$allowed = $permissions[$action];
$hit = true; …Run Code Online (Sandbox Code Playgroud) 我有使用fputcsv创建的字符串
Date,Name,Hours 2013-01-02,"Test User",7:59 2013-01-03,"Test User",7:53 2013-01-04,"Test User",8:12 2013-01-07,"Test User",7:56 2013-01-08,"Test User",8:25 2013-01-09,"Test User",7:56 2013-01-10,"Test User",8:10 2013-01-11,"Test User",7:53 2013-01-14,"Test User",7:54 2013-01-15,"Test User",0:34 2013-04-01,"Test User",5:51 2013-04-02,"Test User",8:50 2013-04-03,"Test User",7:25 2013-04-04,"Test User",8:3 2013-04-05,"Test User","10:42:52[Not punch out]" ,Total,103:1
Run Code Online (Sandbox Code Playgroud)
当正确的标题(标题('Content-type:application/csv');标题('Content-Disposition:attachment; filename ="'.$ filename.'"');)被设置时,它会给出正确的csv文件.

但是我想再次将这个字符串转换为数组格式,所以我尝试将上面的字符串传递给str_getcsv但是得到像这样的数组
Array
(
[0] => Date
[1] => Name
[2] => Hours
2013-01-02
[3] => "Allen Herrera"
[4] => 7:59
2013-01-03
[5] => "Allen Herrera"
[6] => 7:53
2013-01-04
[7] => "Allen Herrera"
[8] => 8:12
2013-01-07 …Run Code Online (Sandbox Code Playgroud) 我知道,在第一眼看,许多用户将此问题标记为重复,但在阅读了10多个问题之后,我没有得到任何满意的答案,几乎所有问题都有答案,例如"你可以做的事情不多.","我不确定","没有确定的射击技巧"等等,这就是我写这个问题的原因,我认为这是非常普遍的问题,而且每个php开发人员都至少面对它一次,确实足够的语言:),现在我的问题是......
我正在开发一个项目管理应用程序,并且在创建任何任务时使用phpmailer发送邮件,或者任何有关任何错误邮件的评论被发送给相关用户,实际上不是在动作发生后立即发送邮件我创建了"通知"表我实际保存所有邮件数据和cron脚本,然后发送所有邮件,这是我的cron脚本的一部分.
$query = "select * from notifications where 1 ";
$projects = $obj_basic->get_query_data($query);
if(!empty($projects))
{
foreach($projects as $data)
{
$message = html_entity_decode($data['content'], ENT_QUOTES);
list($ton, $email) = get_name_email($data['to']);
if(!empty($email))
{
$query = "select send_notification from users where email='$email' AND send_notification !='1' ";
$users = $obj_basic->get_query_data($query);
if(!empty($users))
{
$deleteQuery = "delete from notifications where id ='".$data['id']."'";
$obj_basic->run_query($deleteQuery, 'DELETE');
continue;
}
$comment_id = $data['reference_id'];
$attribute = $data['attribute'];
$mail = new PHPMailer();
list($fromName, $fromEmail) = get_name_email($data['from']);
if(!empty($comment_id) && $attribute == 'comment')
{
$fromEmail …Run Code Online (Sandbox Code Playgroud) 我试图抓住jquery中的延迟对象,但仍然遇到麻烦.基本上我有一系列我想要运行的函数,其中函数1的结果决定了第二个函数中的逻辑.
我不确定我是否必须在某处调用管道方法或者只是使用then(),但无论如何我都会失败.如果你看第一个函数,有一个名为data的对象,我想传递给第二个.
function run() {
var data1 = {};
var data2 = {};
var body = $('body');
$.when(first()).then(second()).done(constructData);
function first() {
var d = new $.Deferred();
var data = {} //arbitrary data set that i want to send to second
data.message = 'first message';
data.id = 1234;
body.append('First done');
//return data object? add it to the resolve method?
d.resolve();
}
function second(data) { //how do I get this data object?
var d = new $.Deferred();
body.append('Data from first:');
body.append('Second done'); …Run Code Online (Sandbox Code Playgroud) 我有一个像下面的数组
Array
(
[0] => Array
(
[0] => Date
[1] => Name
[2] => Hours
)
[1] => Array
(
[0] => 2013-01-02
[1] => Test User
[2] => 7:59
)
[2] => Array
(
[0] => 2013-01-03
[1] => Test User
[2] => 7:53
)
[3] => Array
(
[0] => 2013-01-04
[1] => Test User
[2] => 8:12
)
.
.
.
.
[16] => Array
(
[0] =>
[1] => Total
[2] => 103:1
)
[17] …Run Code Online (Sandbox Code Playgroud) 我试图在我的数据库表的MySQL数据库表模式上添加分区为
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`user_group_id` tinyint(3) unsigned NOT NULL DEFAULT '2',
`username` varchar(50) NOT NULL,
`email` varchar(80) NOT NULL,
`password` varchar(50) NOT NULL,
`first_name` varchar(25) DEFAULT NULL,
`last_name` varchar(25) DEFAULT NULL,
`gender` enum('m','f','u') NOT NULL DEFAULT 'u' COMMENT 'm=>Male, f=>Female, u=>Unspecified',
`profile_image` varchar(255) DEFAULT NULL,
`reset_key` varchar(50) DEFAULT NULL,
`block` enum('y','n') NOT NULL DEFAULT 'n' COMMENT 'y=>blocked, n=>notblocked',
`created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`modified` timestamp NULL DEFAULT CURRENT_TIMESTAMP, …Run Code Online (Sandbox Code Playgroud) 如何使用cakephp Html helper创建具有文本和图像的html链接,如下所示
<a href="#">
<img src="images/icons/web-app/48/add-user.png" width="48" height="48"> Add User
</a>
Run Code Online (Sandbox Code Playgroud)
我希望得到最终结果

我知道我可以用css做到这一点,但我只是想知道如何使用cakephp
我怎么能为所有元素设置这个全局:
CKEDITOR.on('instanceReady', function(ev){
var el = [ "p", "div", "table", "tbody", "tr", "td", "h1", "h2", "h3", "h4", "h5", "h6", "ul", "center" ];
el.forEach(function(v) {
ev.editor.dataProcessor.writer.setRules(v,
{
indent: false,
breakBeforeOpen: true,
breakAfterOpen: false,
breakBeforeClose: false,
breakAfterClose: false
}
);
});
});
Run Code Online (Sandbox Code Playgroud)
把它作为一系列元素很无聊吗?有谁知道如何解决这个问题?