Получение ошибки при попытке сохранить цикл в массив - PullRequest
0 голосов
/ 30 июня 2018

Я получаю эту ошибку каждый раз, когда пытаюсь сохранить данные .. enter image description here

Но когда я использую dd (), массив работает нормально enter image description here

информация

Модель: ** Родители [Срок и Уровень] ** Соединение: : (Модель: term_level, Таблица: term_levels)

TermModel:

 public function level(){
    return $this->belongsToMany(Level::class, 'term_levels','Term_id', 'Level_id');
  } 

LevelModel:

public function term(){
    return $this->belongsToMany(Term::class, 'term_levels', 'Level_id', 'Term_id');
  } 

Контроллер:

 public function store_term_level(Request $request)

{
    $data=$request->all();

    foreach($data['Term_id'] as $termId){
        $term = Term::find($termId);
        $levelids = $data['Level_id'];
        $term->level()->attach($levelids);
        $term_level=new term_level;
        $term_level->Term_id=$request->input('Term_id');
        $term_level->Level_id=$request->input('Level_id');

        $term_level->save();

}

Ответы [ 3 ]

0 голосов
/ 06 июля 2018

Это правильный ответ, я конвертирую его в jason_array

 $data=$request->all();
    foreach($data['Term_id'] as $term){
        $term = Term::find($term);
        $level = $data['Level_id'];
        $term->level()->attach($level);
        $term_level=new term_level;
        $term_level->Term_id=$request->input('Term_id');
        $term_level->Level_id=$request->input('Level_id');
       //this code solve the problem..
        $term_level = json_encode($data, true);

}
0 голосов
/ 11 июля 2018
$terms = Term::whereIn('id', $data['Term_id'])->get();
foreach ($terms as $term) {
    $levelids = $data['Level_id'];
    $term->level()->attach($levelids);
}

Это лучшее решение, потому что оно выполняет меньший запрос к БД

0 голосов
/ 04 июля 2018

Попробуйте этот код

public function store_term_level(Request $request)
{
    $data = $request->all();

    foreach ($data['Term_id'] as $termId) {
        foreach ($data['Level_id'] as $levelId) {
            $term_level = new term_level;
            $term_level->Term_id = $termId;
            $term_level->Level_id = $levelId;
            $term_level->save();
        }
    }
}

или

$terms = Term::whereIn('id', $data['Term_id'])->get();
foreach ($terms as $term) {
    $levelids = $data['Level_id'];
    $term->level()->attach($levelids);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...