[英]Display name of table instead of its id Laravel
我有2个表, tn_project
ID名称为cv_id_project
, tn_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.