Таблица: Фильмы < /code> < /p>
id < /th>
< /th> < /br /> < /br /> < /br /> < /br /> < /br /> < /br /th> < /br /> < /br /th> < /br /> < /br /th> < /br /> < /br /> < /br /th> < /th> < /br /> < /br /> < /th> < /th> < /th> />...
< /tr>
< /thead>
1 < /td>
uuid-m01 < /td>
movie 1 < /td>
>. /> < /tbody>
< /table> < /div>
Таблица: Категории < /code> < /p>
id < /th>
< /th>
/> title < /th>
функционал>. />....
< /tr>
2 < /td>
uuid-c02 < /td>
категория 2 < /td>
...
< /tr>
/>
Table: movie_categories
id
movie_id
category_id
uuid < /th>
...
< /tr>
< /thead>
.. >
.... />.....................td>
...>
post: .../api/movies/create
{
"title": "movie 2",
"category_ids": [
"uuid-c01",
"uuid-c02"
]
}
models/apis/v1/movie.php
Код: Выделить всё
class Movie extends Model {
...
public function movieCategories() {
return $this->hasMany(MovieCategory::class);
}
...
}
Код: Выделить всё
class MovieCategory extends Model {
...
public function movie() {
return $this->belongsTo(Movie::class);
}
public function category() {
return $this->hasOne(Category::class);
}
}
Код: Выделить всё
class Category extends Model {
public function movieCategory() {
return $this->belongsTo(MovieCategory::class);
}
}
написан
Код: Выделить всё
public function store(MovieRequest $request) {
try {
$Post = $request->validated();
$Movie = Movie::create([
'uuid' => Str::uuid(),
'title' => $Post['title'],
]);
$Movie->movieCategories()->create($Post['category_ids']);
...
} catch (\Throwable $th) {
...
}
}
Код: Выделить всё
{
...
"error": {
"code": "22003",
"message": "SQLSTATE[22003]: Numeric value out of range: 1264 Out of
range value for column 'category_id' at row 1 (SQL:
insert into `movie_categories`
(`movie_id`, `category_id`, `uuid`, `updated_at`, `created_at`)
values
(3, uuid-c01, uuid-string, 2025-04-01 07:36:18, 2025-04-01 07:36:18))"
}
}
Table: movie_categories
id
movie_id
Category_ID < /th>
Uuid < /th>
функциональными /> uuid-mc3 < /td>
функциональный />....
Я знаю, что существуют различные другие способы достижения этого, такие как: наблюдатели, MySQL Triggers, выставляя идентификаторы перед вставкой, но я задавался вопросом, есть более уместные (на основе Laravel).>
Подробнее здесь: https://stackoverflow.com/questions/795 ... uuid-to-id
Мобильная версия