Php Laravel数据库关系不工作

Php Laravel数据库关系不工作,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我做错了什么 我的entradas表格: Schema::create('entradas',函数(Blueprint$table){ $table->bigIncrements('id'); $table->biginger('categoria_id'); $table->string('descripao',200); $table->double('valor'); $table->timestamps(); }); 我的categorias表: Schema::create('cat

我做错了什么

我的
entradas
表格:

Schema::create('entradas',函数(Blueprint$table){
$table->bigIncrements('id');
$table->biginger('categoria_id');
$table->string('descripao',200);
$table->double('valor');
$table->timestamps();
});
我的
categorias
表:

Schema::create('categorias',函数(Blueprint$table){
$table->bigIncrements('id');
$table->string('titulo',100);
$table->enum('tipo',['debito','credito']);
$table->timestamps();
});
我的
Entrada
车型:

public function categoria()
{
返回$this->belongsTo('App\Categoria');
}
我的
Categoria
车型:

公共函数entradas()
{
返回$this->hasMany('App\Entrada');
}
在我的
EntradaController
上返回此信息:

公共功能索引(){
返回(Entrada::find(1));
}
我得到以下结果:

{
    "id": 1,
    "categoria_id": 3,
    "descricao": "Distinctio minus praesentium quia ea voluptatem pariatur et. Tenetur maiores mollitia molestias asperiores. Exercitationem maiores voluptas id dolore rerum unde. Ipsum dolorem facere aut ut quos.",
    "valor": 108,
    "created_at": "2020-02-17 17:49:36",
    "updated_at": "2020-02-17 17:49:36"
}

为什么不获取categoria属性?

尝试更新外键列定义,如下所示:

Schema::create('entradas', function (Blueprint $table) {
    // ...
    $table->bigInteger('categoria_id')->unsigned();
    //                                ^^^^^^^^^^^^^
    // You could also do:
    // $table->unsignedBigInteger('categoria_id');
    // ...
});
此外,要访问关系,您需要加载它。所以作为一个答案

为什么我不能得到categoria的财产

你可以利用:

这将为您提供预期的json:

{
    "id": 1,
    "categoria_id": 3,
    "descricao": "Distinctio minus praesentium quos.",
    "valor": 108,
    "categoria": {
        // ...
    },
    "created_at": "2020-02-17 17:49:36",
    "updated_at": "2020-02-17 17:49:36"
}

尝试更新外键列定义,如下所示:

Schema::create('entradas', function (Blueprint $table) {
    // ...
    $table->bigInteger('categoria_id')->unsigned();
    //                                ^^^^^^^^^^^^^
    // You could also do:
    // $table->unsignedBigInteger('categoria_id');
    // ...
});
此外,要访问关系,您需要加载它。所以作为一个答案

为什么我不能得到categoria的财产

你可以利用:

这将为您提供预期的json:

{
    "id": 1,
    "categoria_id": 3,
    "descricao": "Distinctio minus praesentium quos.",
    "valor": 108,
    "categoria": {
        // ...
    },
    "created_at": "2020-02-17 17:49:36",
    "updated_at": "2020-02-17 17:49:36"
}

您必须立即加载categoria属性才能获得它,如下所示:

public function index () {
    return Entrada::with('categoria')->find(1);
}

文档中的更多信息

您必须立即加载categoria属性才能获得它,如下所示:

public function index () {
    return Entrada::with('categoria')->find(1);
}

文档中有更多信息

@BrunoCosta很乐意帮忙。@BrunoCosta很乐意帮忙。