CakePHP 3.x - 关联错误 - 无法将表链接在一起



我正在尝试关联 2 个表:JobesTypes。 类型的表结构非常简单,仅包括idname( 1.全职 2.部分 3.自由职业者(

除了所有其他字段外,作业表还包含名为:"type_id的类型的外键,因此作业属于类型。 我遵循蛋糕约定,但仍然相同的错误:

作业与类型不关联...

我创建了作业表类

use CakeORMTable;
class JobsTable extends Table{
public $name= 'Jobs';
public function initialize(array $config){
$this->belongsTo('Types');                            
}
}

在控制器中声明它:

<?php
namespace AppController;
use AppControllerAppController;
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

工作表.php

$this->belongsTo('Types', [
'foreignKey' => 'type_id'
]);

类型表.php

$this->hasMany('Jobs', [
'foreignKey' => 'type_id'
]);

要从CLI生成正确的关系,请转到命令促销中的'project_directory/bin'并点击以下bake命令:

cake bake types model // for types table

cake bake jobs model // for jobs table

在此处查看详细信息:CakePhp3 代码生成与烘焙

相关内容

  • 没有找到相关文章

最新更新