Php 显示表中的一列在Laravel中有许多关系
在我的项目中,我的房产和视频有很多关系。我试图显示属性表中的标题,该标题属于视频表中相应的视频Php 显示表中的一列在Laravel中有许多关系,php,laravel,has-many,Php,Laravel,Has Many,在我的项目中,我的房产和视频有很多关系。我试图显示属性表中的标题,该标题属于视频表中相应的视频 properties (id, title) videos (id, model_id, filename_video) 这里model_id是指向properties表的外键。使用当前代码,我可以显示所有标题。感谢您的帮助。这是我的密码 Property.php <?php namespace App; use Illuminate\Database\Eloquent\Model; c
properties (id, title)
videos (id, model_id, filename_video)
这里model_id是指向properties表的外键。使用当前代码,我可以显示所有标题。感谢您的帮助。这是我的密码
Property.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Property extends Model
{
protected $guarded = ['id'];
public function videos()
{
return $this->hasMany(Video::class, 'model_id');
}
}
videos.blade.php
<h1 class="font-weight-light text-center text-lg-left mt-4 mb-0">
Videos for
@foreach($results as $result)
{{$result->title}}
@endforeach
</h1>
请尝试这样设置: Property.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Property extends Model
{
protected $guarded = ['id'];
public function videos()
{
return $this->hasMany(Video::class, 'model_id');
}
}
Video.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Video extends Model
{
protected $guarded=['id'];
public function properties()
{
return $this->belongsTo(Property::class);
}
}
控制器
你应该试试这个:
$results = DB::table('properties')
->join('videos', 'properties.id', '=', 'videos.model_id')
->pluck('title');
你到底在展示什么?带有属性标题或属性列表的视频列表?@Karan我有该页面的视频,其中列出了该属性的所有视频。我试图在页面顶部显示该属性的标题。例如,“该物业的所有权”的视频结果查询的输出是什么?@Karan Collection{297▼ 项目:阵列:2[▼ 0 => {307 ▼ +标题:aaaaaaaaaaaaaaaa}1=>{304▼ +标题:这是project one!!!}]}@Karan的标题,或者简单地说,是来自不同属性的标题。我需要一个明确的标题。在本例中,“项目一的标题!!!”找不到我获取列:1054“where子句”中的未知列“videos.property\u id”SQL:select*from videos where videos.property\u id=22和videos.property\u id不为空您的属性应该有一个视频。再次检查答案我更新了itI从不同的属性中获取标题,我只需要该特定属性的一个标题。在查询中,您拥有所有数据,因为您拥有->获取如果您想要一个标题,请使用->查找->首先指定哪个标题。当我使用第一个标题时,它会为所有属性获取相同的结果。我需要属于该属性的标题我试图获取非对象错误的属性“title”
class Video extends Model
{
protected $guarded=['id'];
public function properties()
{
return $this->belongsTo(Property::class, 'model_id');
}
}
$results = Property::with('videos')->where('title', $property->title)->get();
$results = DB::table('properties')
->join('videos', 'properties.id', '=', 'videos.model_id')
->pluck('title');