Админка на october cms
у меня есть модель Shop.php
<?php namespace Aplus\Buildb\Models;
use Model;
/**
* Model
*/
class Shop extends Model
{
use \October\Rain\Database\Traits\Validation;
/**
* @var array Validation rules
*/
public $rules = [
'code' => 'required|unique:aplus_buildb_shops'
];
public $customMessages = [
'code.required' => 'Заполните код магазина',
'code.unique' => 'Магазин с таким кодом уже есть в базе',
];
public $belongsTo = [
'city' => [City::class],
'mall' => [Mall::class],
//'ad_type' => [AdType::class],
];
public $hasMany = [
'frames' => [Frame::class], //"Aplus\Buildb\Models\Frame"
'works' => [Work::class], //"Aplus\Buildb\Models\Work"
];
/**
* @var string The database table used by the model.
*/
public $table = 'aplus_buildb_shops';
public function getRegionOptions()
{
return Region::all()->lists('name', 'id');
}
public function getCityOptions()
{
$region = isset($this->region)
? Region::find($this->region)
: Region::find(key($this->getRegionOptions()));
if ( ! isset($region) ) {
return City::all()->lists('name', 'id');
}
// dump($region->cities());
return collect($region->cities)->lists('name', 'id');
}
//Получаем все ТК выбранного города ( для аренды)
public function getMalls()
{
return Mall::all()->lists('name', 'id');
// array:17 [
// 1 => "Л203"
// 2 => "Л228"
// 3 => "Л227"
// 4 => "Л154"
// 5 => "Л184"
// 6 => "Л212"
// 7 => "Горки ТК"
// 8 => "Л74"
// 9 => "Тетрис ТК"
// 10 => "Л94"
// 11 => "Л209"
// 12 => "Л245"
// 13 => "Л146"
// 14 => "Л58"
// 15 => "Л219"
// 16 => "Л238"
// 17 => "Л192"
// ]
}
public function getShopsOptions()
{
$mall = isset($this->mall)
? Mall::find($this->mall)
: Mall::find(key($this->getMalls()));
// if ( ! isset($mall) ) {
// return City::all()->lists('name', 'id');
// }
dump($mall->cities());
return collect($mall->cities)->lists('name', 'id');
}
public function beforeSave()
{
$data = post();
// dd($data['Frame']['_city']);
// dump(array_key_exists('_city', $data['Mall']));
// dump($data['Frame']);
// dump(_city)
// dump($data['Shop']['city']);
// dump($data['Mall']);
}
public function scopeShopByCity($query)
{
$data = post();
// dump($shops);
if ( array_key_exists('_city', $data['Frame']) ) {
$shops = (! empty($data['Frame']['_city']))
? collect(City::find($data['Frame']['_city'])->shops)->lists('id') //находим все города в рамах, и выводим их id
: Shop::all()->lists('id'); //список id всех магазинов
}
return $query->whereIn('id', $shops);
}
public function scopeMallByCity($query)
{
$data = post();
if ( array_key_exists('_city', $data['Mall']) ) {
$malls = (! empty($data['Malls']['_city']))
? collect(City::find($data['Malls']['_city'])->shops)->lists('id') //находим все ТК
: Mall::all()->lists('id'); //список id всех магазинов
dd($query);
}
return $query->whereIn('id', $malls);
dd($query);
}
// Db::connection()->enableQueryLog();
// trace_log( Db::getQueryLog() );
// Db::connection()->disableQueryLog();
}
как мне определить что попадает в ($query) функции scopeShopByCity ?
dd и dump, ничего не выводят во вкладке XHR
что вообще делаю : вывожу только те ТК (mall) , которые есть в выбранном городе
fields.yaml для shop :
fields:
code:
label: 'Код магазина'
span: auto
type: text
city:
label: Город
nameFrom: name
descriptionFrom: description
span: auto
type: relation
type:
label: 'Тип магазина'
options:
0: Собственный
1: Аренда
span: auto
type: dropdown
mall:
label: 'Торговый комплекс'
nameFrom: name
descriptionFrom: description
span: auto
type: relation
emptyOption: 'Не выбран'
trigger:
action: empty|disable
field: type
condition: value[0]
address:
label: Адрес
size: small
span: auto
type: textarea
trigger:
action: empty|disable
field: type
condition: value[1]
# ad_type:
# label: 'Вид рекламного материала'
# nameFrom: name
# descriptionFrom: description
# span: auto
# type: relation
description:
label: Описание
size: small
span: auto
type: textarea
# price_type:
# label: 'Тип цены'
# options:
# 0: Фиксированная
# 1: 'За квадратный метр'
# span: auto
# type: dropdown
в controllers\malls\config_relation.yaml :
shop:
label: магазина
view:
form: $/aplus/buildb/models/shop/fields.yaml
toolbarButtons: link|unlink|update|create
manage:
form: $/aplus/buildb/models/shop/fields.yaml
list: $/aplus/buildb/models/shop/columns.yaml
showSearch: true
scope: mallByCity
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть код, который нормально работаетНо когда я выставляю приоритет WHERE pollid =3; Диаграмма не отображается