У меня проблемы с созданием полиморфных отношений между двумя моделями:
- Загрузить
- Группа
Упрощенная версия групповой модели:
use Cartalyst\Sentry\Groups\Eloquent\Group as SentryGroupModel;
class Group extends SentryGroupModel {
...
/**
* returns the logo (upload model) from this agency
*
* @return Upload
*/
public function logo()
{
return $this->morphOne('Upload', 'uploadable', 'model_type', 'model_id');
}
...
}
Упрощенная версия модели Загрузка
class Upload extends Eloquent {
...
/**
* returns the polymorphic relationship
*
* @return Upload
*/
public function uploadable()
{
return $this->morphTo('uploadable', 'model_type', 'model_id');
}
...
}
Как видите, модель Group на самом деле является расширенной моделью Sentry 2 Group, которая является внутренней частью расширенной модели Eloquent.
При вызове отношения в контроллере как таковом:
$agencyGroup->logo->saveUpload('logo');
я получаю ошибку PHP:
Вызов функции-члена saveUpload() для необъекта
Любая помощь с этим?
$agencyGroup
имеетUpload
в базе данных? Похоже, вы вызываете$agencyGroup->logo
, который возвращаетNULL
, а затем вызываетNULL->saveUpload('logo')
. - person vFragosop   schedule 20.08.2013$agencyGRoup->logo()
, он возвращает экземплярIlluminate\Database\Eloquent\Relations\MorphOne
, хотя, если я попробую$agencyGRoup->logo()->saveUpload('logo')
, я получу другую ошибку, чем раньше:Call to undefined method Illuminate\Database\Query\Builder::saveUpload()
- person AndrewMcLagan   schedule 20.08.2013Use Upload
- person AndrewMcLagan   schedule 20.08.2013