小编ric*_*ere的帖子

CakePHP 3:如何正确检查用户是否已登录

在CakePHP 3中,我找到了两种方法来查找用户是否已登录.

第一解决方案

if(!is_null($this->Auth->user('id'))){
        // Logged in
}
Run Code Online (Sandbox Code Playgroud)

第二解决方案

if (!is_null($this->request->session()->read('Auth.User.id'))) {
    // Logged in
}
Run Code Online (Sandbox Code Playgroud)

我认为第一个更好,因为它简洁明了.

有没有更好的方法来验证用户是否已登录?

我不是在寻找速度.我想用一种干净而富有表现力的方式来编写它.

php cakephp-3.0

6
推荐指数
1
解决办法
8475
查看次数

Cakephp 3的虚拟字段

我需要在我的用户实体中拥有一个虚拟属性.我跟着CakePHP书.

UserEntity.php

namespace App\Model\Entity;

use Cake\ORM\Entity;

class User extends Entity {

    protected $_virtual = ['full_name'];

    protected function _getFullName() {
        return $this->_properties['firstname'] . ' ' . $this->_properties['lastname'];
    }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中

$users = TableRegistry::get('Users');
$user = $users->get(29);
$firstname = $user->firstname; // $firstname: "John"
$lastname = $user->lastname; // $lastname: "Doe"
$value = $user->full_name; // $value: null
Run Code Online (Sandbox Code Playgroud)

我完全按照这本书,我只得到了一个null价值.

php orm cakephp cakephp-3.0

6
推荐指数
1
解决办法
9992
查看次数

JSON.parse给出了一个"未定义"的对象

我试着解析这个字符串:

[{"ZoneId": "1", "0": "1", "ZoneX": "29", "1": "29", "ZoneY": "27", "2":     "27", "ZoneWidth": "76", "3": "76", "ZoneHeight": "61", "4": "61", "ZoneImage": "46", "5": "46", "ZonePointTo": "2", "6": "2"},
{"ZoneId": "2", "0": "2", "ZoneX": "382", "1": "382", "ZoneY": "226", "2": "226", "ZoneWidth": "-117", "3": "-117", "ZoneHeight": "98", "4": "98", "ZoneImage": "46", "5": "46", "ZonePointTo": "3", "6": "3"},
{"ZoneId": "3", "0": "3", "ZoneX": "108", "1": "108", "ZoneY": "74", "2": "74", "ZoneWidth": "363", "3": "363", "ZoneHeight": "83", "4": "83", "ZoneImage": "46", "5": …
Run Code Online (Sandbox Code Playgroud)

javascript arrays parsing json object-literal

5
推荐指数
1
解决办法
1万
查看次数

在Ubuntu 12.04 LTS上从CakePHP 3连接到SQL Server

我的设置是在Windows上工作,但我最近切换到Ubuntu 12.04 LTS,现在它将无法连接.当我加载一个我需要与SQL Server通信的页面时,我收到此错误:

由于缺少PHP扩展或未满足的依赖项,无法使用数据库驱动程序Cake\Database\Driver\Sqlserver

很明显CakePHP找不到SQL Server PDO驱动程序.

我找到了许多旧的教程来帮助我,但我最近才拿到了(我希望能够在我的CakePHP网站上使用PDO).这是我遵循的教程.

使用终端,我可以使用此命令访问数据库

sqlcmd -S my.sql.server.com -U username
Run Code Online (Sandbox Code Playgroud)

使用CakePHP 3.x从我的ubuntu安装连接到这个sql server数据库需要做什么?

php sql-server pdo cakephp cakephp-3.0

5
推荐指数
1
解决办法
1673
查看次数

用CakePHP 3翻译i18n

上下文

我想用法语和英语翻译我的应用程序.我完全遵循CakePHP 3文档,但它无法正常工作.

到目前为止我做了什么

对于我的开发,我正在使用一个流浪盒来轻松启动并运行CakePHP 3.这个盒子被命名为vagrant-chef

/config/bootstrap.php

我修改了第100行,使用法语作为默认语言.

ini_set('intl.default_locale', 'fr_CA');
Run Code Online (Sandbox Code Playgroud)

/ SRC /控制器/ PagesController

我将此方法添加到默认的PagesController

public function initialize() {
    I18n::locale('en');
}
Run Code Online (Sandbox Code Playgroud)

/src/Template/Pages/home.ctp

我添加了这两行

    <?php echo __('Hey, bonjour'); ?>
    <?php echo __('Je teste la traduction'); ?>
Run Code Online (Sandbox Code Playgroud)

.pot文件生成

从终端,我输入此命令bin/cake i18n extract.CakePHP在其中创建了2个文件/src/Locale/.这些文件是cake.potdefault.pot.我翻译了default.pot文件:

...
msgid "Hey, bonjour"
msgstr "Hey, hello"
...
Run Code Online (Sandbox Code Playgroud)

Locales目录结构

/src/Locale文件现在看起来像这样:

/en
   /default.pot
Run Code Online (Sandbox Code Playgroud)

尽管我试图翻译我的应用程序,但我没有得到任何工作.我认为这是一个缓存问题,所以我删除了文件/tmp/cache/persistent/.

谢谢.

php localization cakephp internationalization cakephp-3.0

3
推荐指数
1
解决办法
4177
查看次数