Я работаю над фильмом WebApp.Пользователь выбирает фильмы и он добавляется в базу данных.столбец movie_list
является JSON, потому что
Я хочу, чтобы каждый раз, когда пользователь добавляет фильм, он добавлялся в массив, а если он уже в нем, я хочу, чтобы он не добавлялся в массив
Проблема в том, что вместо добавления его в существующий массив он когда-нибудь перезапишет массив, просто добавит вложенный массив или просто создаст пользовательский ключ (0,1,2,3)
.
Я пытался функционировать как
array_merge and array_add
// It does overwrite it
array['checkedMovie'] = 3
Тоже задумывался о каждом, но, к сожалению, не знаю, как это реализовать.
Мой мозг зажат.
public function update(Request $request, TrackMovie $trackMovie)
{
$currentCheckedMoviesArray = DB::table('track_movies')->where('user_id', $trackMovie->user_id)->get('checkedMovie');
$currentCheckedMoviesArray = json_decode($currentCheckedMoviesArray, true)[0];
$newarraychecked=array_add($currentCheckedMoviesArray,$currentCheckedMoviesArray['checkedMovie'], $trackMovie->checkedMovie);
return dd($newarraychecked);
$current_length = DB::table('track_movies')->where('user_id', $trackMovie>user_id)->value('lengthOfMovie');
DB::table('track_movies')->where('user_id', $trackMovie->user_id)->update([
'lengthOfMovie' => $current_length + $trackMovie->lengthOfMovie,
'checkedMovie' => $newarraychecked;
]);
return dd(TrackMovie::all());
}
Чтобы сделать это немного чётчеЯ отредактировал это, потому что я думаю, это из-за моего форматирования.
$currentCheckedMoviesArray = json_decode($currentCheckedMoviesArray, true)[0];
// DD Result
array:1 [▼
"checkedMovie" => "["1", "2"]"
]
$trackMovie->checkedMovie
//DD Result
array:2 [▼
0 => "2"
1 => "4"
]
$newarraychecked=Arr::collapse($currentCheckedMoviesArray, $trackMovie->checkedMovie);
//DD Result
[]
Фактический результат:
This is the result what I get on the above code
array:1 [▼
"checkedMovie" => "["1", "2"]"
]
There some more because I tested many things
array:1 [▼
"checkedMovie" => "["1", "2"]"
1 => "2"
2 => "4"
]
Ожидаемый результат:
The User is checking some movies.
// He already has some movies
checkedMovie = ["1","2","3"]
Now the Application Checks if it already existed the movie in the Database.
If it does not contain in the database I want to add it. User selects Movie ID (5,6)
checkedMovie = ["1","2","3","5","6"]
After that, it will overwrite the Database column value
Если я что-то забылЧтобы добавить к вопросу, пожалуйста, прокомментируйте его, чтобы я мог отредактировать вопрос!