2017-11-18 117 views
1

设置页面之前额外的属性在我PageTemplates.php我有一个领域是这样的:Laravel背包 - 保存

$this->crud->addField([ 
    'name' => 'adres', 
    'label' => 'Adres', 
    'type' => 'address', 
    'fake' => true, 
]); 

现在,我想也保存的该纬度经度他们给的地址(如果可以找到的话)。我复制了PageCrudController和改变配置在配置/背包/ pagemanager.php到:

return [ 
    'admin_controller_class' => 'App\Http\Controllers\Admin\PageCrudController', 
    'page_model_class'  => 'App\Models\Page', 
]; 

在我的店里功能我:

public function store(StoreRequest $request) 
{ 
    $address = $request->request->get('adres'); 
    $addressObj = app('geocoder')->geocode($address)->get()->first(); 

    if($addressObj) 
    { 

    } 

    $this->addDefaultPageFields(\Request::input('template')); 
    $this->useTemplate(\Request::input('template')); 

    return parent::storeCrud(); 
} 

但是做什么我放在if语句中?我如何添加(=设置)一个额外的字段到额外的数据库字段?

添加纬度和经度为隐藏字段:

+0

试试这个'if($ addressObj) {request-> latitude = '23 .5'; $ request-> latitude = '40 .5'; }' – C2486

+0

您是否尝试了上述评论? – C2486

+0

@ user2486,尝试过,但不起作用。没有保存。这也不适用于其他领域。 – nielsv

回答

0

通过执行以下固定它通过执行以下操作

$this->crud->addField([ 
    'name' => 'latitude', 
    'type' => 'hidden', 
    'fake' => true, 
]); 

$this->crud->addField([ 
    'name' => 'longitude', 
    'type' => 'hidden', 
    'fake' => true, 
]); 

套装属性:

if($addressObj) 
    { 
     $request['latitude'] = $addressObj->getCoordinates()->getLatitude(); 
     $request['longitude'] = $addressObj->getCoordinates()->getLongitude(); 
    } 
} 

变化parent::updateCrudparent::updateCrud($request);