Php 显示选定窗体的名称而不是其Id(错误:尝试获取非对象的属性)laravel 5

Php 显示选定窗体的名称而不是其Id(错误:尝试获取非对象的属性)laravel 5,php,mysql,laravel-5,eloquent,Php,Mysql,Laravel 5,Eloquent,我有两个表tn_client和tn_project,其中一个项目有一个客户机,而客户机可以有许多项目,而不是在我的表上显示客户机id,我想显示它的客户机名称,但当我这样做时,它说试图获取非对象的属性 正在尝试获取非对象视图的属性: C:\xampp\htdocs\PKL\netxcel-activityreport-11b90b878d39\resources\views\project.blade.php 上面是我得到的全部错误,下面是表格 TNU项目 TNU客户 控制器 模型 计划 客户 看

我有两个表tn_client和tn_project,其中一个项目有一个客户机,而客户机可以有许多项目,而不是在我的表上显示客户机id,我想显示它的客户机名称,但当我这样做时,它说试图获取非对象的属性

正在尝试获取非对象视图的属性: C:\xampp\htdocs\PKL\netxcel-activityreport-11b90b878d39\resources\views\project.blade.php

上面是我得到的全部错误,下面是表格

TNU项目

TNU客户

控制器

模型

计划

客户

看法

这是我的精选表格

<div class="col-md-9">
     <select name="clientId" id="clientId" class="form-control" placeholder="Select Client">   
         @foreach ($clients as $client) 
              <option value='{{$client->cn_id}}'>{{$client->cv_name}}</option>; 
        @endforeach     
     </select>
 </div>
这就是我调用函数在视图中显示它的方式

@foreach($projects as $project)
    <tr class="odd gradeX">
        <td>{{$project->cv_id}}</td>
        <td>{{$project->cv_name}}</td>
        <td>{{$project->client->cv_name}}</td><!--This is what cause an -->
        <td>{{$project->cn_invoice_method}}</td>
        <td>{{$project->cn_project_rate}}</td>
        <td>{{$project->cn_note}}</td>
        <td>
            <a class="btn btn-success" title="edit" data-id={{$project->cv_id}} data-action="project-edit"><i class="fa fa-pencil"></i></a>
            <a class="btn btn-danger" title="delete" data-id={{$project->cv_id}} data-action="project-delete"><i class="fa fa-times"></i></a>
        </td>
    </tr>
@endforeach

我对laravel还是个新手,我做错了什么,犯了这样的错误?

我找到了答案,我从那里得到了参考,基于这个参考和x->y->z的基础,我们首先要检查x->y是否有一些值,如果是的话,我们要检查它是一个对象还是仅仅是一个数组,在我的例子中,它是一个数组,所以做类似的事情

{{$project->client->cv_name}}
{{$project->client['cv_name']}}
这就是如何显示一个对象,我们应该这样做

{{$project->client->cv_name}}
{{$project->client['cv_name']}}

这就是你解决问题的方法,干杯:D

控制器中返回项目视图的方法是什么?检查客户机模型中的项目关系。我认为应该是一个hasMany而不是hasOne。你应该给它命名为projects。我认为客户机模型与它无关,因为模型使用project.php,控制器使用ProjectController.php,视图使用project.blade.php,我仍然不知道如何使用关系,顺便说一句,再看一次我的控制器,我添加了一些代码,可能会有帮助。谢谢你更新这个问题!当您试图从belongsTo关系获取数据时,如果找不到相关对象,它将返回null。因此,请检查是否有任何没有客户端id的项目。如果您的业务规则不允许没有客户端的项目,则应在创建条目之前验证数据。如果不是这样,你可以拥有一个没有客户id的项目,你应该在foreach中做一个简单的检查:If$project->client{$project->client->cv_name}谢谢你的参考,你的评论和我答案中的链接都很好地解决了我的问题
{{$project->client['cv_name']}}