2017-11-18 4 views
1

ページを保存する前に余分な属性を設定し、私はこのようなフィールドを持っている:Laravelリュック - 私の<strong>PageTemplates.php</strong>で

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

今、私は緯度経度にものを保存したいです(それは見つけることができるならば)彼らが与えるアドレス。私はPageCrudControllerをコピーし、/バックパック/ pagemanager.phpに設定で設定を変更しました:

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(); 
} 

しかし、どのような操作を行います。私は私の機能で

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

私はif文に入れますか?どのように私は自分のデータベースに余分なフィールドに(=セット)余分なフィールドを追加することができますか?

を非表示フィールドとして緯度と経度追加:parent::updateCrud($request);

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

変更parent::updateCrud:次の手順を実行して

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

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

セットの属性を次のようにして、それを修正

+0

次のようにしてください。if($ addressObj) { $ request-> latitude = '23 .5 '; $要求 - >緯度は= '40 0.5' ; } ' – C2486

+0

あなたがコメントし、上記のようにしてみてくださいましたか? – C2486

+0

@ user2486、試しましたが動作しません。そこに保存されていません。これは他のフィールドでも機能しません。 – nielsv

答えて

関連する問題