访问提供非静态方法的一对多关系不应静态访问错误 Laravel5.3

Accessing One to many relation giving non static methode should not be accessed stitically error Laravel5.3

我有两个模型产品和照片。这些型号如下

Photo Model

public function Product(){
        return $this->belongsTo('App\Product');
    }

Product Model

public function Photo(){
        return $this->hasMany('App\Photo');
    }

我需要获取产品类别的所有照片。为此,我尝试了这个

$Photo =  Products::Photo()->where(['catagory' => $request->catagory])->get();

但我收到以下错误。

ErrorException in IndexController.php line 49: Non-static method App\Product::Photo() should not be called statically

如何解决?还有什么问题

使用如下方式访问产品类别的照片。

$product = Products::where(['catagory' => $request->catagory])->with('Photo')->get();
$photo = $product->Photo;
var_dump($photo);

请参阅 ProductPhoto(); 方法 class 不是您可以通过 class 名称直接访问的方法(访问方法的静态方法 class).

您正在尝试调用 class 的方法,就像我们调用静态方法一样

ClassName::Method_name()

但是你的照片方法不是静态的,class。

更新:对于关系,最好把(可选)建立关系的相关外键

return $this->hasMany('App\Photo','your_foreign_key_for_this_relation');