小编Inv*_*ble的帖子

Cakephp 3:如何忽略特定查询的 beforefind?

我正在处理多语言帖子。我在 PostsTable 中添加了 beforefind() 以便我可以列出当前语言的帖子

public function beforeFind(Event $event, Query $query) {

    $query->where(['Posts.locale' => I18n::locale()]);
}
Run Code Online (Sandbox Code Playgroud)

为了允许用户以不同语言复制帖子,我编写了以下功能:

public function duplicate(){
    $this->autoRender = false;
    $post_id= $this->request->data['post_id'];

    $post = $this->Posts
            ->findById($post_id)
            ->select(['website_id', 'category_id', 'locale', 'title', 'slug', 'body', 'image', 'thumb', 'meta_title', 'meta_description', 'other_meta_tags', 'status'])
            ->first()
            ->toArray();

    foreach($this->request->data['site'] as $site) {
        if($site['name'] == false) {
            continue;
        }
        $data = array_merge($post, [
            'website_id' => $site['website_id'],
            'locale' => $site['locale'],
            'status' => 'Draft',
            'duplicate' => true
        ]);


        $pageData = $this->Posts->newEntity($data);

        if($this->Posts->save($pageData)) {
            $this->Flash->success(__('Post have been created.'));;
        } …
Run Code Online (Sandbox Code Playgroud)

entity exists cakephp-3.0

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

标签 统计

cakephp-3.0 ×1

entity ×1

exists ×1