繁体   English   中英

显示表名称而不是其ID Laravel

[英]Display name of table instead of its id Laravel

我有2个表, tn_project ID名称为cv_id_projecttn_activity ID名称为id ,我想获取项目名称cv_project_name而不是其id

基本上,当我单击add activity我具有select选项来选择我使用的project ,我设法获取所选project的ID,但我想要它的name (我可以在一个activity选择最多3个project

模型

<?php namespace Activity;

use Illuminate\Database\Eloquent\Model;

class Activity extends Model {
    protected $table = 'tn_activity';
    public $timestamps = false;

    public function projectModel(){
       return $this->hasMany('Activity\Project','cv_id_project','id');
   }
}

视图

@foreach($query as $result)
    <td>{{$result->projectModel->cv_project_name}}</td>
@endforeach

控制者

public function index(){
    return view('landing-page')
        ->with('title','Landing Page')
        ->with('query',Activity::with('projectModel')->get())
        ->with('projects',Project::all());
}

通常它是可行的,但我不知道是什么使它出错,然后发生此错误

Undefined property: Illuminate\\Database\\Eloquent\\Collection::$cv_project_name (View: C:\\xampp\\htdocs\\PKL\\netxcel-2-backup2\\resources\\views\\landing-page.blade.php)

您的Activity projectModel是一个集合,因为它具有hasMany关系。 如果确实如此,则应获得这样的项目名称。

@foreach ($result->projectModel as $project)
    <td>{{$project->cv_project_name}}</td>
@endforeach

但是,如果它不应该具有hasMany关系,则应更改hasMany部分

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM