2017-11-18 77 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);