Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 16.07.2015 23:35:12

Сергей777

Не видит класс модели

День добрый,

Модель:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class Object extends Model {

	use SoftDeletes;
	protected $table = 'objects';
	protected $fillable = array('price', 'add', 'imageable_type', 'imageable_id');

	public function imageable()
	{
		return $this->morphTo();
	}

}


class Items extends Model {

	public $timestamps = false;
	protected $table = 'objects_kv';
	protected $fillable = array('images', 'table');

	public function imageable()
	{
		return $this->morphMany('App\Models\Object', 'imageable');
	}

}

В контроллере:

        $obj = Object::find($id);
        return  $obj->imageable;

В таблице в поле imageable_type(varchar) стоит: Items

Но происходит ошибка:
Class 'Items' not found

Почему класс этот не видит?

#2 16.07.2015 23:57:15

Сергей777

Re: Не видит класс модели

#3 17.07.2015 00:26:45

Сергей777

Re: Не видит класс модели

Появился ещё вопрос, как вывести все записи? и почему Object::find($id) не содержит сразу imageable

        $objs = Object::all();
        $arr = array();
        foreach ($objs as $obj) {
            $arr[] = array_merge((array)$obj, (array)$obj->imageable);
        }
        return  $arr;

#4 17.07.2015 10:41:42

Re: Не видит класс модели

Object::with('imageable')->get();

Не в сети

#5 23.07.2015 19:42:32

Сергей777

Re: Не видит класс модели

А поиск в imageable как совершить?

Данный код не работает

        $res = Object::where('imageable_type', '=', 'Objects_kv')
            ->whereBetween('price', [110, 150])
            ->with(['imageable' => function($query){
                $query->where('table', '=', '1');
            }])
            ->get();

в laravel debug даже намёка нет на where('table', '=', '1');

select * from `objects` where `objects`.`deleted_at` is null and `imageable_type` = 'Objects_kv' and `price` between '110' and '150'1mstria
select * from `objects_zem` where `id` in ('1')

Подвал раздела