如何用照片展示一个画廊

时间:2019-07-28 15:12:51

标签: php laravel

我正在使用画廊页面,如果我单击其中一个,它将重定向我到单个画廊页面,并应该显示该画廊的照片。

当我进入实际图库页面时,图库对象中没有任何内容。

当我做Gallery::with('photos')->get()时。这会给我每个画廊的照片。我只想要来自实际画廊的照片。

谢谢。

//Photo model


class Photo extends Model
{
   public function gallery()
    {
        return $this->belongsTo('App\Gallery');
    }
}

//Gallery model



class Gallery extends Model
{
        public function getRouteKeyName()
    {
        return 'slug';
    }

        /**
     * Get the photos of this gallery.
     */
    public function photos()
    {
        return $this->hasMany('App\Photo');
    }
}


//show metod in GalleryController

   public function show(Gallery $gallery)
    {

           $gallery->load('photos');

            return compact('gallery');

    }

1 个答案:

答案 0 :(得分:0)

图库中没有任何内容,因为您没有返回视图。

此行:

 return compact('gallery');

需要一个视图,例如:

return view("somethingFolder.somethingView", compact('gallery'));

或者,如果您只是使用ajax拉动来显示模型,则可以使用以下内容:

    $view = view('somefolder.someview', compact('gallery'));

    $sections = $view->renderSections(); // returns an associative array of 'content', 'pageHeading' etc

    return $sections['modalContent']; // this will only return whats in the content section

然后在您看来,$gallery->photos将为您提供该画廊的照片集。