Цикл массива и вставка в базу данных Laravel - PullRequest
0 голосов
/ 02 июня 2019

Я хочу перебрать массив и вставить его в базу данных. Когда я проверяю dd ($ request-> users), он отображает "NULL", но если я ставлю dd ($ request-> all ()), появляется массив данных. Плюс код для контроллера ниже не вставляет данные в базу данных. Спасибо

Сценарий

<script>
export default {
    data(){
      return{  
            users: [{
                username:'',
                password:'',
                phone:'',
                email:''
            }]
      }
    },
    methods:{
        addMoreData(){
            this.users.push({
                username: '', 
                password: '' , 
                email: '',
                phone:''
                });
        },
        deleteData(index){
            this.users.splice(index,1)  
        },
        submitData(){
         axios.post('/api/user', this.users)
      }
    },
    mounted() {
        console.log('Component mounted.')
    }
}

Контроллер

    public function store(Request $request)
{   
    for ($i = 1; $i < count($request->all()); $i++) {
        data::create([
                'username'=>$request->username[$i],
                'password'=>$request->password[$i],
                'phone'=>$request->phone[$i],
                'email'=>$request->email[$i]
            ]);
    }
}

Отредактировано

Результат для dd (request-> all ()

Результат для dd (запрос-> пользователи

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Это должно работать в вашем случае, я думаю.

public function store(Request $request)
{ 
   foreach($request->all() as $user){
      $u = User::create([
             'username'=>$user['username'],
             'password'=>$user['password'],
             'phone'=>$user['phone'],
             'email'=>$user['email']
      ])
     return ...
   }
}

Но если вы хотите отправлять пользователей из внешнего интерфейса, вам нужно будет поместить пользователей в новый массив с именем users.Удачи.

0 голосов
/ 03 июня 2019

Если ваши данные в этом формате согласно вашему этому изображению

enter image description here

В контроллере:

public function store(Request $request){   

    $users = $request->all();

    if(!empty($users)){
        foreach($users as $user){
           data::create($user);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...