- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试烘焙名为 DeploymentRequest 的模型时,出现以下错误:
在数据源中找不到模型 GroupsUser 的表 groups_users
如果我查看我的数据库结构,则不会与该连接表建立任何关系(也不需要存在)。不过,我确实有模型组和用户充当 ACL 目的的请求者。
错误:
Baking test fixture for DeploymentRequest...
Creating file C:\wamp\apscmdb\app\Test\Fixture\DeploymentRequestFixture.php
Wrote `C:\wamp\apscmdb\app\Test\Fixture\DeploymentRequestFixture.php`
Bake is detecting possible fixtures...
Error: Table groups_users for model GroupsUser was not found in datasource defau
lt.
#0 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Model\Model.php(3498): Model->se
tSource('groups_users')
#1 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Model\Model.php(1355): Model->ge
tDataSource()
#2 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Model\Model.php(864): Model->sch
ema()
#3 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Model\Model.php(892): Model->__i
sset('GroupsUser')
#4 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\TestTask.ph
p(405): Model->__get('GroupsUser')
#5 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\TestTask.ph
p(396): TestTask->_processModel(Object(Group))
#6 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\TestTask.ph
p(396): TestTask->_processModel(Object(User))
#7 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\TestTask.ph
p(376): TestTask->_processModel(Object(DeploymentRequest))
#8 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\TestTask.ph
p(146): TestTask->generateFixtureList(Object(DeploymentRequest))
#9 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\ModelTask.p
hp(854): TestTask->bake('Model', 'DeploymentReque...')
#10 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Command\Task\ModelTask.
php(109): ModelTask->bakeTest('DeploymentReque...')
#11 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Shell.php(431): ModelTa
sk->execute()
#12 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\Shell.php(428): Shell->
runCommand('execute', Array)
#13 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\ShellDispatcher.php(207
): Shell->runCommand('model', Array)
#14 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\lib\Cake\Console\ShellDispatcher.php(66)
: ShellDispatcher->dispatch()
#15 C:\wamp\cakephp-2.4.5\cakephp-2.4.5\app\Console\cake.php(36): ShellDispatche
r::run(Array)
#16 {main}
数据库结构:
CREATE TABLE deployment_requests(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT(10) UNSIGNED NOT NULL,
environment_id INT(10) UNSIGNED NOT NULL,
revision INT(10) UNSIGNED NOT NULL,
is_scheduled TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
requested_deploy_date DATE DEFAULT NULL,
requested_deploy_time TIME DEFAULT NULL,
additional_instructions TEXT DEFAULT NULL,
is_completed TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
created_by INT(10) UNSIGNED DEFAULT NULL,
modified_by INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 1
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
CREATE TABLE groups(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
name_eng VARCHAR(255) NOT NULL,
name_fra VARCHAR(255) NOT NULL,
description_eng TEXT NOT NULL,
description_fra TEXT NOT NULL,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL,
created_by INT(10) UNSIGNED DEFAULT NULL,
modified_by INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 4
AVG_ROW_LENGTH = 5461
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
CREATE TABLE users(
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
group_id INT(10) UNSIGNED DEFAULT NULL,
legal_given_names VARCHAR(255) NOT NULL,
legal_family_name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
)
ENGINE = INNODB
AUTO_INCREMENT = 601943
AVG_ROW_LENGTH = 3276
CHARACTER SET utf8
COLLATE utf8_unicode_ci;
编辑#1
用户模型:
<?php
App::uses('AppModel', 'Model');
/**
* User Model
*
* @property Group $Group
* @property AssetDeploymentUser $AssetDeploymentUser
* @property AssetGroupDeploymentUser $AssetGroupDeploymentUser
* @property DeploymentRequest $DeploymentRequest
* @property DeploymentSupportRequest $DeploymentSupportRequest
*/
class User extends AppModel {
public $displayField = 'name';
public $virtualFields = array(
'name' => 'CONCAT(User.legal_given_names, " ", User.legal_family_name)'
);
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
if (!$this->id && empty($this->data)) {
return null;
}
if (isset($this->data['User']['group_id'])) {
$groupId = $this->data['User']['group_id'];
} else {
$groupId = $this->field('group_id');
}
if (!$groupId) {
return null;
} else {
return array('Group' => array('id' => $groupId));
}
}
/**
* Validation rules
*
* @var array
*/
public $validate = array(
'legal_given_names' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'legal_family_name' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'email' => array(
'email' => array(
'rule' => array('email'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'username' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
//The Associations below have been created with all possible keys, those that are not needed can be removed
/**
* belongsTo associations
*
* @var array
*/
public $belongsTo = array(
'Group' => array(
'className' => 'Group',
'foreignKey' => 'group_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
/**
* hasMany associations
*
* @var array
*/
public $hasMany = array(
'AssetDeploymentUser' => array(
'className' => 'AssetDeploymentUser',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
'AssetGroupDeploymentUser' => array(
'className' => 'AssetGroupDeploymentUser',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
'DeploymentRequest' => array(
'className' => 'DeploymentRequest',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
'DeploymentSupportRequest' => array(
'className' => 'DeploymentSupportRequest',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
群组模型:
<?php
App::uses('AppModel', 'Model');
/**
* Group Model
*
* @property User $User
* @property Asset $Asset
*/
class Group extends AppModel {
public $displayField = 'name_eng';
public $actsAs = array('Acl' => array('type' => 'requester'));
public function parentNode() {
return null;
}
//The Associations below have been created with all possible keys, those that are not needed can be removed
/**
* hasAndBelongsToMany associations
*
* @var array
*/
public $hasAndBelongsToMany = array(
'User' => array(
'className' => 'User',
'joinTable' => 'groups_users',
'foreignKey' => 'group_id',
'associationForeignKey' => 'user_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
),
'Asset' => array(
'className' => 'Asset',
'joinTable' => 'assets_groups',
'foreignKey' => 'group_id',
'associationForeignKey' => 'asset_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
)
);
}
最佳答案
根据您的数据库,我相信组有许多用户并且用户属于组。因此,从 $hasAndBelongsToMany 属性中删除 User 数组,并在 Group.php 中添加以下内容:
public $hasMany = = array(
'User' => array(
'className' => 'User',
'foreignKey' => 'group_id'
)
);
关于php - Cake Bake - 在数据源中找不到模型 GroupsUser 的表 groups_users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22228642/
我在 JavaScript 文件中运行 PHP,例如...... var = '';). 我需要使用 JavaScript 来扫描字符串中的 PHP 定界符(打开和关闭 PHP 的 )。 我已经知道使
我希望能够做这样的事情: php --determine-oldest-supported-php-version test.php 并得到这个输出: 7.2 也就是说,php 二进制检查 test.
我正在开发一个目前不使用任何框架的大型 php 站点。我的大问题是,随着时间的推移慢慢尝试将框架融入应用程序是否可取,例如在创建的新部件和更新的旧部件中? 比如所有的页面都是直接通过url服务的,有几
下面是我的源代码,我想在同一页面顶部的另一个 php 脚本中使用位于底部 php 脚本的变量 $r1。我需要一个简单的解决方案来解决这个问题。我想在代码中存在的更新查询中使用该变量。 $name)
我正在制作一个网站,根据不同的情况进行大量 PHP 重定向。就像这样...... header("Location: somesite.com/redirectedpage.php"); 为了安全起见
我有一个旧网站,我的 php 标签从 因为短标签已经显示出安全问题,并且在未来的版本中将不被支持。 关于php - 如何避免在 php 文件中写入
我有一个用 PHP 编写的配置文件,如下所示, 所以我想用PHP开发一个接口(interface),它可以编辑文件值,如$WEBPATH , $ACCOUNTPATH和 const值(value)观
我试图制作一个登录页面来学习基本的PHP,首先我希望我的独立PHP文件存储HTML文件的输入(带有表单),但是当我按下按钮时(触发POST到PHP脚本) )我一直收到令人不愉快的错误。 我已经搜索了S
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: What is the max key size for an array in PHP? 正如标题所说,我想知道
我正在寻找一种让 PHP 以一种形式打印任意数组的方法,我可以将该数组作为赋值包含在我的(测试)代码中。 print_r 产生例如: Array ( [0] => qsr-part:1285 [1]
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
我在 MySQL 数据库中有一个表,其中存储餐厅在每个工作日和时段提供的菜单。 表结构如下: i_type i_name i_cost i_day i_start i_
我有两页。 test1.php 和 test2.php。 我想做的就是在 test1.php 上点击提交,并将 test2.php 显示在 div 中。这实际上工作正常,但我需要向 test2.php
我得到了这个代码。我想通过textarea更新mysql。我在textarea中回显我的MySQL,但我不知道如何更新它,我应该把所有东西都放进去吗,因为_GET模式没有给我任何东西,我也尝试_GET
首先,我是 php 的新手,所以我仍在努力学习。我在 Wordpress 上创建了一个表单,我想将值插入一个表(data_test 表,我已经管理了),然后从 data_test 表中获取所有列(id
我有以下函数可以清理用户或网址的输入: function SanitizeString($var) { $var=stripslashes($var); $va
我有一个 html 页面,它使用 php 文件查询数据库,然后让用户登录,否则拒绝访问。我遇到的问题是它只是重定向到 php 文件的 url,并且从不对发生的事情提供反馈。这是我第一次使用 html、
我有一个页面充满了指向 pdf 的链接,我想跟踪哪些链接被单击。我以为我可以做如下的事情,但遇到了问题: query($sql); if($result){
我正在使用 从外部文本文件加载 HTML/PHP 代码 $f = fopen($filename, "r"); while ($line = fgets($f, 4096)) { print $l
我是一名优秀的程序员,十分优秀!