gpt4 book ai didi

php - Eloquent 关系返回无法转换为字符串

转载 作者:行者123 更新时间:2023-12-01 12:12:32 26 4
gpt4 key购买 nike

我正在尝试按照 Laravel 教程使用 Eloquent 在我的数据库中映射现有的一对一关系,但我收到了一个字符串转换错误。
我必须使用其他程序使用的现有数据库,因此我无法更改数据库结构。
这是我的模型:
佩索阿.php

 namespace App\Models;

use Illuminate\Support\Facades\Log; use
Illuminate\Database\Eloquent\Model;

class Pessoa extends Model {
protected $table = 'pessoas';
public function estadoCivil(){
//return EstadoCivil::find($this->estado_civil_id);
return $this->hasOne('App\Models\EstadoCivil', 'estado_civil_id');
}
}
EstadoCivil.php
命名空间 App\Models;
 use Illuminate\Database\Eloquent\Model;
class EstadoCivil extends Model
{
protected $table = 'estados_civis';
}
我不知道该怎么办,但我收到此错误:

Object of class Illuminate\Database\Eloquent\Relations\HasOne could not be converted to string


我搜索了拼写错误和其他错误,但一无所获。我什至没有尝试将任何内容转换为字符串来获取此错误,数据库中 id 和外键的类型也是相同的。
这是使用它的 Controller :
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Pessoa as Pessoa;

class Eu extends Controller
{
public function __construct()
{
}

public function dadosCompletos(Request $request){
return Pessoa::find($request->user()->pessoa_id)->estadoCivil();
}
}
如果我只使用 return Pessoa::find($request->user()->pessoa_id)它工作正常并从 pessoas 表正确返回数据。

最佳答案

您返回的是关系而不是实际的 EstadoCivil 集合。
使用 return Pessoa::find($request->user()->pessoa_id)->estadoCivil不带括号

关于php - Eloquent 关系返回无法转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50727861/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com