问题标签 [cakephp-3.8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
256 浏览

cakephp - 无法更新 CakePHP 3.8 中的记录

我遇到的问题是我无法更新我的 CakePHP 3.8 应用程序中的记录,它安装在实时服务器上。在我的开发服务器上它工作正常。

我可以插入新的,我可以删除,我可以选择,但我无法更新任何记录。

(当然,MySQL 用户有权更新记录。)

这就是编辑操作的工作方式,以及从未到达的部分代码:

我检查过pr($this->request),在尝试更新记录时没有“patch”、“post”或“put”方法,只有“get”。但为什么“得到”?

CakePHP 3.8 的 CSRF 组件有什么问题吗?

你能帮我解决这个问题吗?

先感谢您!

更新:这是我的表格:

而且,我在这个应用程序中的每个更新表单上都有同样的问题,在实时服务器上。在开发服务器上它工作正常。

更新 2:

在 mod 安全日志文件中,我收到以下消息:

请求:POST /locations/edit/3 操作说明:访问被拒绝,代码为 403(第 2 阶段)。理由:字符串匹配 REQUEST_COOKIES_NAMES:CAKEPHP 处的“cakephp”。

我在 bootstrap.php 和 app.php 中添加了以下行,但错误消息保持不变:

0 投票
1 回答
44 浏览

cakephp-3.8 - 在查询生成器中创建文本,选择

我需要在查询生成器选择中添加文本。

0 投票
1 回答
164 浏览

php - CakePHP 3.8.6:即使没有注销,身份验证也不会阻止多次登录

我一步一步地遵循了CMS 教程,直到我添加了登录/身份验证代码,一切都运行良好。添加登录代码后,(我已经编辑了现有密码以使用 DefaultPasswordHasher 并创建了一个新用户)user1如果我尝试通过即将

并登录为user2,它允许我这样做,它应该说“User1 已登录”之类的内容并将我重定向到默认页面。

就我的理解而言,我发现奇怪的 b'coz,它使用当前登录的用户 => 不应该允许多次登录,但是 Auth 组件不会检查用户是否已经登录。实际上,有没有什么能阻止我在浏览器上打开多个选项卡并以我想要的任意数量的用户身份登录,只要这些用户在数据库中!

另外,当我调用注销页面时

它会注销所有登录的用户,我猜它需要 $this->Auth->logout();当前登录的用户!虽然,我没有为 user1 调用注销页面,例如,我已经为 user2 调用了注销,但两者都已注销,我必须再次以 user1 身份登录!

所以,这是我的问题:当用户已经登录并再次请求登录页面时,我该如何处理?如何处理多个用户同时登录的情况?

0 投票
1 回答
79 浏览

php - CakePHP 3.8.6:添加新内容时授权失败

鉴于我是 CakePHP 的新手,我不禁注意到授权中的明显失败。同样,当我添加授权代码并以 user1 身份登录到文章/添加页面时,继续CMS 教程,一切都很好。然后我从下拉列表中选择用户(在运行cake bake all articles命令并按照教程重新修改 ArticlesController.php 并且不修改 '.ctp 文件后),用户 ID = 2,创建文章并能够保存它同样,虽然我以 user1 的身份登录,用户 ID = 1!我也觉得很奇怪。然后我尝试编辑 user2 的文章,它正确地给出了“未经授权的访问错误”,但是当我尝试编辑 user1 自己的文章时,它给出了如下错误:

错误信息(ArticlesController.php,第 154 行)对应的代码如下:

这意味着无论哪个用户登录,编辑功能都不起作用。

  1. 当一个用户(比如 user1)尝试使用除他自己以外的用户 ID 保存文章时,授权如何工作?
  2. 为什么授权码不允许user1编辑自己的文章?

在此先感谢,斯鲁普

0 投票
1 回答
268 浏览

jquery-ui - 带有 Jquery 自动完成功能的 CakePhp 3.8 不起作用

我正在尝试使用自动完成 jquery 函数来完成具有两个源值之一的字段:['pere','mele']。不幸的是,它不起作用。

默认.ctp

在视图文件中

在js文件single.js中

在控制台谷歌浏览器中

不幸的是,即使控制台没有给出错误,该文件也不起作用

0 投票
1 回答
1575 浏览

authentication - Cakephp 3 身份验证插件,登录 URL 不匹配

我想使用 CakePHP 3.8 的身份验证插件,但我遇到了文档中没有的问题。

在遵循入门(https://book.cakephp.org/authentication/1/en/index.html)之后,我有一个问题。

最初指定 $fields 来更改真实数据库中的用户名和密码关系,与 Auth 组件相同,登录 URL 是登录表单 si 加载的位置。

首先,在入门或文档的任何部分都没有说明登录视图(表单),因此,就像旧的 Auth 组件一样,我将其创建到 Users/login.ctp

我在 Application.php 中的代码包括这个(及其各自的用途和实现):

但是当我尝试登录时,我有这个错误,在 login.ctp 中的 var_dump 之后我得到这个:

如果我评论'loginUrl' => '/users/login'行,那么登录工作正常。

附加说明: - 我已经使用散列和文本平面密码进行了测试,结果相同。- 我添加$this->Authentication->allowUnauthenticated(['view', 'index', 'login', 'add']);了 beforeFilter 来访问登录。- 这是一个干净的 cakephp 3.8 安装,只有数据库是相同的测试。- 我只用蛋糕控制台添加了 Crud。

我想了解有关该 loginURL 的更多信息,我应该在 UsersController 中包含一些用途?是什么导致了这个错误?

谢谢

0 投票
1 回答
56 浏览

php - 实现带有错误下划线的表:致命错误:调用成员函数

当我实现一个名为 example_a 调用的表时:

  • 模型/实体:ExampleA.php
  • 模型/表格:ExampleATable.php
  • 控制器:ExampleAController.php
  • 模板/示例A:index.ctp

给我以下错误:

注意(1024):未定义的属性:ExampleAController :: $ ExampleA in C: Program Files ...</p>

致命错误:在布尔值上调用成员函数 find ()

要打印控制器中的对象列表,请实现一个功能:

我指定此表与其他表没有任何关系

相反,如果我做同样的事情来实现一个没有下划线的表格,它就可以工作

0 投票
0 回答
985 浏览

authentication - How to allow to unauthenticated users see some specific pages or actions pages in Cake PHP 3?

With CakePHP 3 we used Auth component and this worked like this CakePHP - How to allow unauthenticated access to specific pages

Now I'm trying to use the new Authentication and Authorization plugins instead (I don't know if it is the best solution).

I have this case:

I have some tables in the database for entities (cars, brands, and users). I have users and 4 level user roles (pyramid). - Admins can change everything - Editors can see and add brands and cars, but only can edit or update cars and brands created by themselves. - Registered users can add only cars and edit their cars (and see all cars and brands). - Anonymous users can see all but only can create a user account.

Authentication works well alone. To allow anonymous user access to content I use $this->Authentication->allowUnauthenticated(['login', 'add']); but when I load Authorization plugin, everything give error.

Do I need to specify all Authorization access with authorizeModel and other functions? There is a way to authorize at the same time with both plugins? Do I really need Authorization plugin for this and is recommended or Authentication plugin can handle this?

With previous Auth component I worked with something like this piece of code:

In AppController.php

In UsersController.php

In Cars and Brands controllers

Followed from https://book.cakephp.org/3/es/tutorials-and-examples/blog-auth-example/auth.html

My versions are: - CakePHP 3.8 - Authentication plugin 1.4 - Authorization plugin 1.3

Sorry if my question is a bit basic but documentation is not very clear with this. I can add more details if needed.

Edit: If I quit unauthenticatedRedirect I get:

If I add requireItentity as false, in AppController

I get (where / is the path, can be /cars /brands)

If I use this in AppController (always Authentication before Authorization)

and this in Application

I send all users to login page but authorization checks error appears. With $this->Authorization->skipAuthorization(); in beforeFilter() user can see the pages and works but I don't know if it is appropriated.

If I use this in any controller beforeFilter $this->Authorization->authorizeModel('index', 'add', 'display' ...);

I get

In home (or pages controller) I get

Do I really need to create policies for each table? I think is more complex than previous Auth component or maybe I'm doing something wrong.

0 投票
1 回答
126 浏览

cakephp - CakePhp where() 条件不适用于 HasMany 关系

我必须表

注意:产品可能包含多个 VendorsInventories。

在模型/表格/供应商库存中

并在:模型/表/ProductsTable.php

在查询中:

结果是:

代码响应

我的主要问题是:如何选择包含关系数据的行。注意:belongsTo() 工作正常,我对 hasToMany() 有问题

0 投票
1 回答
76 浏览

php - cakephp 3.8 中的多次插入

我应该做一个多重列表。其中两个字段具有相同的共同值。例如,如果我进入国际米兰、米兰、尤文,他们将拥有 nationality_season 和 series_season 作为常用字段。此外,用户应该决定要制作的广告的数量。

只有当我插入所有内容时:错误:SQLSTATE [HY000]:一般错误:1364 字段“club_id”没有默认值

在此处输入图像描述

我有这个数据库

在此处输入图像描述

管理插入的函数是锦标赛控制器中的 add 函数:

提取代码add.ctp: