我一直在这个网站上,所以请原谅我,如果其他人发布了这个,但我找不到任何可以解决我的问题.
我正在使用Mac.通过我的IOS构建,我完全没有问题.
但是对于Android,我"现在"有一些问题,当我运行时,cordova build android
我得到以下错误,
/Users/x/Library/Android/sdk/tools/ant/build.xml:601: The following error occurred while executing this line:
/Users/x/Library/Android/sdk/tools/ant/build.xml:720: The following error occurred while executing this line:
/Users/x/Library/Android/sdk/tools/ant/build.xml:734: Class not found: javac1.8
/Users/x/Desktop/One/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: debug,-f,/Users/x/Desktop/test/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
ERROR building one of the platforms: Error: /Users/x/Desktop/test/platforms/android/cordova/build: Command failed with exit code 8
You may not have the required environment or OS to build this project
Run Code Online (Sandbox Code Playgroud)
我使用'now'这个词,因为这个错误,我认为我已经修复了它并且它正在工作但我没有改变PATHS
任何地方在我的终端,我可以运行javac - version
,这给了我javac 1.8.0_25
.所以它可以不同看java. …
我在尝试将 AuthError 上的 Flash 元素从默认更改为错误时没有运气?
我只是想看看我是否可以改变它,但现在它把我逼上了墙,因为我似乎无法改变它?
这就是我在 AppController 中加载我的身份验证的方式,
$this->loadComponent('Auth', [
'authError' => 'Did you really think you are allowed to see that? -2',
'authenticate' => [
'Form' => [
'fields' => ['username' => 'email', 'password' => 'password']
]
],
'loginAction' => [
'controller' => 'Users',
'action' => 'Login'
],
'loginRedirect' => [
'controller' => 'Pages',
'action' => 'LoginPage'
],
'logoutRedirect' => [
'controller' => 'Pages',
'action' => 'HomePage'
]
]);
Run Code Online (Sandbox Code Playgroud)
因此,当我转到不允许的页面时,它会显示 authError 消息,但使用任何类/ID 在Element/Flash/default.ctp
我想将其更改为仅使用与error.cpt
我已经调试了 Auth …
这是所有选择后SQL的连接,
FROM users Users
LEFT JOIN userinfos Userinfos ON Userinfos.id = (Users.userinfo_id)
INNER JOIN offices Offices ON Offices.id = (Userinfos.office_id)
Run Code Online (Sandbox Code Playgroud)
好吧,我有一个使用CakePHP 3的数据库(MySQL)设置,用户表具有在另一个表中保存的扩展信息.
另一个表也扩展了办公室/地址信息但是默认设置为NULL,所以我想将它包含在'contains'调用中,但是当它为空时不会返回用户数据?
所以这就是我目前使用的,
$UsersTable->find('all')
->contain(['Userinfos','Userinfos.Offices'])
->toArray();
Run Code Online (Sandbox Code Playgroud)
但是,办公室(officeinid表中的office_id字段)并不总是设置,但我仍然希望它返回所有用户,即使他们没有办公室设置.
所以我试过了,
$UsersTable->find('all')
->contain([
'Userinfos',
'Userinfos.Offices'
])
->where(['Userinfos.office_id IS' => NULL])
->toArray();
Run Code Online (Sandbox Code Playgroud)
也,
$UsersTable->find('all')
->contain([
'Userinfos',
'Userinfos.Offices' =>
function($q) {
return $q->where(['Userinfos.office_id IS' => NULL]);
}
])
->toArray();
Run Code Online (Sandbox Code Playgroud)
该$UsersTable
变量被设置为
$UsersTable = TableRegistry::get('Users');
Run Code Online (Sandbox Code Playgroud)
如果我Userinfos.Offices
从包含条件中删除它,那么它将返回所有当前用户.但是,我如何调用这些额外的数据/信息,以便我可以访问Office信息,例如,如果设置了位置名称?
*我可能没有清楚地解释自己,如果有什么我可以更好地解释,请告诉我,谢谢.
根据要求,这是$this->request->data
我的表格,
'office' => 'LON-test33',
'phone' => '456456456',
'address' => [
'addline1' => '1 test0009 st',
'addline2' => 'p09987',
'addline3' => 'test9999',
'postcode' => 'p888',
'country_id' => '226'
],
Run Code Online (Sandbox Code Playgroud)
所以办公室,电话是我办公室表的一部分,地址是整个地址表。
我还做了一个测试,看看它是否在模型中,只是尝试通过提供一个 ID 来更新地址表。哪个有效,所以我认为我的模型很好。所以我在想是与 Office 模型有关还是我的代码有问题?
谢谢,
所以我正在使用 CakePHP 3.0.something ....
我正在尝试更新与办公室表相关联的数据的地址。但是,当我更新办公室时,地址被保存为一个全新的记录?不知道为什么?
这是我目前正在做的事情,
$OfficeTable = TableRegistry::get('Offices');
$CurrentOffice = $OfficeTable->get($OfficeID);
$OfficeTable->patchEntity($CurrentOffice, $this->request->data, ['associated' => ['Addresses']]);
debug( $OfficeTable->save($CurrentOffice) );
Run Code Online (Sandbox Code Playgroud)
Associated
在 patchEntity 中设置似乎没有什么区别,更新后的地址被保存,而是作为新记录。然后将此新记录 ID 放入 Office 表的“address_id”字段中。
但是为什么要将这个“新的/编辑过的”地址添加为新记录而不更新关联的 id 记录?
现在我一直在阅读文档,并形成我所理解的,如果找不到记录,它会重新记录吗?但是,我已经调试了保存调用,并且在 office 和 address 上都将“[new]”设置为 false。那么为什么要更新我的办公室,却在告诉我它不是新地址时创建一个新地址呢?
所以要补充的是,在我的调试调用的底部有一个 '[original]',它包含它应该更新的记录的旧地址 ID。
那么我做错了什么?
如果我没有正确解释自己(我有阅读障碍),那么请告诉我,或者如果有任何遗漏我可以更新 …