嗨,我有以下型号。
场馆模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Venues extends Model
{
public $timestamps = false;
/**
* The database table used by the model.
** @var string
*/
protected $table = 'locations';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name', 'country','city','client_id'];
public function survey(){
return $this->belongsToMany('App\Survey', 'location_to_survey','location_id', 'survey_id')->withPivot('is_review');
}
}
调查模型
namespace App;
use Illuminate\Database\Eloquent\Model;
class Survey extends Model
{
//
public function venues(){
return $this->belongsToMany('App\Venues', 'location_to_survey','location_id', 'survey_id')->withPivot('is_review');
}
}
当我试图获得一个地点的调查,我得到以下错误。
$survey = Venues::survey()->where('id','=', $id)->orderBy('surveys.id','DESC' )->first();
非静态方法 App\Venues::survey() 不应静态调用,假设$this来自不兼容的上下文
我已经在 Laravel 5.1 中创建了与此相同的模型和关系,而没有此问题。我想知道我是否在 Laravel 5.2 中遗漏了某些内容。
< code>survey()是一个绝对不是静态的关系方法,我真的不知道您想要完成什么,但是您有两个选择,您可以直接从< code>Survey模型中获得您想要的调查,如下所示:
Survey::where('id','=', $id)->orderBy('surveys.id','DESC' )->first();
或者在< code >场馆模型的实例上这样做:
$venue->survey()->where('id','=', $id)->orderBy('surveys.id','DESC' )->first();
当然,在第二种情况下,它将通过属于特定地点的调查进行搜索。
如果你想得到场地的调查结果,那么你应该这样做。。。
$surveys = Venue::find($id)->venues()->orderBy('id', 'DESC')->first()