首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >返回的雄辩关系无法转换为字符串

返回的雄辩关系无法转换为字符串
EN

Stack Overflow用户
提问于 2018-06-07 03:06:53
回答 2查看 3K关注 0票数 4

我尝试在Laravel教程之后使用Eloquent在我的数据库中映射现有的一对一关系,但我收到一个字符串转换错误。

我必须使用其他程序使用的现有数据库,所以我不能更改数据库结构。

这是我的模型:

Pessoa.php

代码语言:javascript
复制
 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命名空间应用\模型;

代码语言:javascript
复制
 use Illuminate\Database\Eloquent\Model;
 class EstadoCivil extends Model
 {
     protected $table = 'estados_civis';
 }

我不知道该怎么做,但我得到了这个错误:

无法将类Illuminate\Database\Eloquent\Relations\HasOne的

对象转换为字符串

我搜索了打字错误和其他错误,但什么也找不到。我甚至没有试图将任何东西转换成字符串来得到这个错误,数据库中id和外键的类型也是相同的。

下面是使用它的控制器:

代码语言:javascript
复制
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表中正确返回数据。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-07 04:03:53

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

票数 7
EN

Stack Overflow用户

发布于 2019-10-03 16:06:43

必须使用->estadoCivil而不是->estadoCivil()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50727861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档