Laravel создать, неопределенные индексы - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь редактировать пользователей, но возвращается «неопределенный индекс».Я использую этот текущий скрипт для редактирования и связывания информации об АДРЕС с пользователями.

 public function getIndexEditClient(Request $request, $id) {
    $regions = DB::table("regions")->pluck("name","id");
    $address = Address::where('id', $request->address_id)->with('region')->first();
    $clients = $this->data->getEditClient($id);

    //als gebruiker geen address heeft, creeer deze en koppel hem aan user
    if (!isset($address)){
        $data = $request->input();

        $address = Address::create([
            'region'        => $data['region'],
            'country'       => $data['country'],
            'city'          => $data['city'],
            'street_name'   => $data['street_name'],
            'house_number'  => $data['house_number'],
            'postcode'      => $data['postcode']
        ]);

         //create associate user with address
        $clients->address()->associate($address);
        $address = new Address;
        $address->this->save();

Остальное работает нормально.

Это моя форма редактирования:

** <h3>Address information</h3>                     
            <div class="row">
                <div class="col-md-4">
                    <div class="form-group">
                        <label>Region</label>
                        <select id="region" name="region" class="form-control">
                        <option value="{{$address['region => id']}}" selected>{{$address['region => name']}}</option>
                            @foreach($regions as $key => $region)
                            <option value="{{$key}}"> {{$region}}</option>
                            @endforeach
                        </select>
                    </div>
                </div>
                        <div class="col-md-4">
                            <div class="form-group">
                                <label>Country</label>
                                <select name="country" id="country" class="form-control">
                                </select>
                            </div>
                        </div>

и т. Д. И т. Д.

** Мой способ добавления адреса неправильный?Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 11 декабря 2018

Попробуйте сбросить запрос

dd($request->all());

Если все значения приходят, вы можете использовать

$address = Address::create($request->all());
0 голосов
/ 11 декабря 2018

Вы хотите сохранить массив, пока вы сохраняете объект, лучше использовать этот формат.ТАК изменить способ, которым вы хотите сохранить адрес

$data = new Address();            
$data->region=$request->region;
$data->country=$request->country;
$data->city=$request->city;
  ...
 $data->save();

$address = Address::create([
'region'        => $data['region'],
'country'       => $data['country'],
 'city'          => $data['city'],
'street_name'   => $data['street_name'],
'house_number'  => $data['house_number'],
'postcode'      => $data['postcode']
]);
0 голосов
/ 11 декабря 2018

Laravel автоматически удаляет пустые значения из запроса, поэтому, если одно из полей оставлено пустым, оно не будет в массиве $data.

Вы должны либо добавить подтверждение в свой пост обратно, либо проверитьдля каждого значения, если ключ существует в массиве $data.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...