Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 Laravel从HasMany关系中选择第一行_Laravel 5_Has Many - Fatal编程技术网

Laravel 5 Laravel从HasMany关系中选择第一行

Laravel 5 Laravel从HasMany关系中选择第一行,laravel-5,has-many,Laravel 5,Has Many,我有2个表,其中1个产品有许多prodphoto 我可以从具有相同id的产品中检索所有prodphotos,但我的案例列出了所有产品,但仅从prodphotos中拍摄一张照片 控制器: public function daftarproduk() { $produks = Product::orderBy('created_at', 'desc')->get(); $select = Product::with('prodphotos')->firstorfail

我有2个表,其中1个产品有许多
prodphoto

我可以从具有相同id的产品中检索所有
prodphotos
,但我的案例列出了所有
产品
,但仅从
prodphotos
中拍摄一张照片

控制器:

public function daftarproduk()
{
    $produks = Product::orderBy('created_at', 'desc')->get();

    $select = Product::with('prodphotos')->firstorfail();
    $photo = $select->prodphotos->pluck('photo');

    $kategori = Category::orderBy('created_at', 'asc')->get();

    return view('guest.daftarproduk')
          ->with('produks',$produks)
          ->with('kategori',$kategori)
          ->with('select',$select)
          ->with('photo',$photo);
}
视图:

@foreach($produks as $value)
    <div class="col-xs-6 col-md-4 col-lg-3 box-product-outer">
        <div class="box-product">
            <div class="img-wrapper">
                <a href="detail/{{$value->id}}/{{str_slug($value->name)}}">
                    <img alt="Product" src="images/gambarproduk/thumb_{{ i dont know what i must throw here to only get first picture }}">
                </a>
            </div>
            <h6><a href="detail/{{$value->id}}/{{str_slug($value->name)}}">{{$value->name}}</a></h6>
        </div>
    </div>
@endforeach
@foreach($produks作为$value)
@endforeach

我不知道必须使用什么函数才能从控制器中获取第一张照片的名称。或者我的
foreach
逻辑错误?请帮助我。

在您的
产品
型号中添加一张与
hasOne
类型相关的特色照片

产品
型号

public function featuredPhoto() {
    return $this->hasOne(PhotosModel);
}
在控制器中

public function daftarproduk()
{
    // Get the products with featured image
    $produks = Product::with('featuredPhoto')->orderBy('created_at', 'desc')->get();
    $kategori = Category::orderBy('created_at', 'asc')->get();

    return view('guest.daftarproduk')
          ->with('produks',$produks)
          ->with('kategori',$kategori);
}
看法

@foreach($produks作为$value)
@endforeach

我不知道是否可以在同一个表中使用2种关系类型。。。谢谢你的把戏和好答案。很高兴它有帮助:)
@foreach($produks as $value)
    <div class="col-xs-6 col-md-4 col-lg-3 box-product-outer">
        <div class="box-product">
            <div class="img-wrapper">
                <a href="detail/{{$value->id}}/{{str_slug($value->name)}}">
                    <img alt="Product" src="images/gambarproduk/thumb_{{ $value->featuredPhoto->photo }}">
                </a>
            </div>
            <h6><a href="detail/{{$value->id}}/{{str_slug($value->name)}}">{{$value->name}}</a></h6>
        </div>
    </div>
@endforeach