作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试关联 2 个表:Jobes
和 Types
。 types的表结构非常简单,仅包含id
和name
(1.full-time 2.partial 3.freelance)
Jobs 表除了所有其他字段外还包含名为:type_id
的类型的外键,因此 Jobs belongsTo 类型。我遵循蛋糕约定,但仍然出现相同的错误:
Jobs is not associated with Types...
我创建了 JobsTable 类
use Cake\ORM\Table;
class JobsTable extends Table{
public $name= 'Jobs';
public function initialize(array $config){
$this->belongsTo('Types');
}
}
在 Controller 中声明它:
<?php
namespace App\Controller;
use App\Controller\AppController;
class JobsController extends AppController
{
public $name='Jobs';
public function index(){
//Get job info
$jobs =$this->Jobs->find('all')->contain(['Types']);
$this->set('jobs',$jobs);
}
}
然后过去查看(index.ctp):
<?php foreach ($jobs as $job) : ?>
<p> <?php echo $job->title; ?> <?php echo $job->types->name; ?></p>
<?php endforeach; ?>
我的错误在哪里?
最佳答案
您还需要设置foreignKey
。
JobsTable.php
$this->belongsTo('Types', [
'foreignKey' => 'type_id'
]);
TypesTable.php
$this->hasMany('Jobs', [
'foreignKey' => 'type_id'
]);
要从CLI
生成正确的关系,请转到命令promot中的'project_directory/bin'
并点击以下bake命令:
cake bake types model // for types table
和
cake bake jobs model // for jobs table
关于mysql - CakePHP 3.x - 关联错误 - 无法将表链接在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45517750/
假设 TABLE-A 在 TABLE-B 中可以有一行或多行,在 TABLE-C 中可以有一行或多行,在 TABLE-D 中可以有一行或多行......等等。 假设我在 TABLE-Z 并且需要了解有
我是一名优秀的程序员,十分优秀!