Я использую шаблон репозитория и пытаюсь установить отношения между моделями. Когда я пытаюсь запустить метод store() (в контроллере), который пытается использовать метод user() (который устанавливает связь с моделью Party), я получаю следующее сообщение об ошибке:
Нестатический метод Party::user() не должен вызываться статически, предполагая $this из несовместимого контекста.
Я не понимаю, почему я получаю эту ошибку, когда пытаюсь запустить метод отношения user(), но все остальные методы (включая $this->party->all(), $this->party->create( $data)), работают нормально.
Вот соответствующий код:
// PartiesController.php
public function __construct(Party $party){
$this->party = $party
}
public function store(){
$data = Input::all();
$user = Sentry::getUser();
$this->party->user()->create($data);
}
// Party.php
class Party extends Eloquent{
public function user(){
return $this->belongsTo('User');
}
}
// User.php
use Cartalyst\Sentry\Users\Eloquent\User as SentryUserModel;
class User extends SentryUserModel implements UserInterface, RemindableInterface {
public function party(){
return $this->hasMany('Party');
}
}
// PartyRepository.php
namespace repositories\Party;
interface PartyRepository{
public function all();
public function findByID($id);
public function create($input);
public function user();
}
// EloquentPartyRepository.php
namespace repositories\Party;
use Party;
class EloquentPartyRepository implements PartyRepository{
public function all(){
return Party::all();
}
public function create($input){
return Party::create($input);
}
public function user(){
return Party::user();
}
}