您好我有以下型号。
场地模型
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中遗漏了一些东西。
答案 0 :(得分:2)
survey()
是一种绝对不是静态的关系方法,我不知道你想要完成什么,但是你有两个选项,你要么直接从{{得到你想要的调查。 1}}模型如此:
Survey
或者你在Survey::where('id','=', $id)->orderBy('surveys.id','DESC' )->first();
模型的实例上这样做:
Venues
在第二种情况下,它当然会搜索属于该特定地点的调查。
答案 1 :(得分:0)
如果您正在尝试进行场地调查,那么您应该做这样的事情......
$surveys = Venue::find($id)->venues()->orderBy('id', 'DESC')->first()