php [cakephp:UserstampBehavior]在保存之前将用户的id创建/修改为实体的模型行为。 #cakephp

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php [cakephp:UserstampBehavior]在保存之前将用户的id创建/修改为实体的模型行为。 #cakephp相关的知识,希望对你有一定的参考价值。

<?php
namespace App\Model\Behavior;

use ArrayObject;
use Cake\Datasource\EntityInterface;
use Cake\Event\Event;
use Cake\ORM\Entity;
use Cake\ORM\Behavior;
use App\Controller\AppController;

/**
 * Userstamp Behavior
 * - Set Users.id to `created_user_id` when INSERT entity.
 * - Set Users.id to `modified_user_id` when UPDATE entity.
 * @author hyano@ampware.jp
 * @link   https://goo.gl/Z41W4H
 */
class UserstampBehavior extends Behavior
{


  /** 
   * Event of before called save method
   * @param  Event  $event
   * @param  Entity $entity
   * @param  array  $options
   * @return void
   */
  public function beforeSave(Event $event, EntityInterface $entity, ArrayObject $options) {
    $loggedUserId = AppController::$loggedUserId ?? null;
    if ($entity->isNew()) $entity->created_user_id = $loggedUserId;
    $entity->modified_user_id = $loggedUserId;
  }


}


// In Table.
$this->addBehavior('Userstamp');

// In AppController.
public static $loggedUserId = null;

// After authority.
$user = $this->Auth->user();
AppController::$loggedUserId = $user['id'];

以上是关于php [cakephp:UserstampBehavior]在保存之前将用户的id创建/修改为实体的模型行为。 #cakephp的主要内容,如果未能解决你的问题,请参考以下文章

php [cakephp:AuthComponent示例] AuthComponent的示例代码。 #cakephp

php [cakephp:DropShell]删除所有应用程序表以进行开发。 #cakephp

php [cakephp:MediaController]用文件二进制文件返回cake的响应对象。 #cakephp

由于缺少 PHP 扩展,CakePHP 3 无法连接到数据库

CakePHP 教程:PHP 开发框架

CakePhp 2.6.3 不适用于 PHP 7