0
Laravel : xin mọi người thông não giúp em. không lưu tags là khoảng trống trong DB tags.
$array_tags = array_map('trim', explode(',', $request->tags));
$array_tag_id = [];
foreach ($array_tags as $item) {
$tagService = new TagService();
if ($item != " ") {
// Find tag name//code
$tagRecord = $tagService->findTagName($item);
if (!empty($tagRecord)) {
$array_tag_id[] = $tagRecord->id;
} else {
// store tag name and get ID
$request->request->add(['name' => $item]);
$request->request->add(['slug' => null]);
$tagResult = $tagService->saveData($request);
$array_tag_id[] = $tagResult->id;
}
}
}
ex: khi nhập nhiều tags các kí tự, nhưng sau ',' không nhập gì thì vẫn lưu, em muốn sau ',' không nhập gì thì nó sẽ không lưu lại khoảng cách. hiện tại nó lưu : , , , ,...
2 CÂU TRẢ LỜI
+2
bạn thử filter nó trước vòng lặp nha
$array_tags = array_map('trim', explode(',', $request->tags));
$array_tags = array_filter($array_tags);
hoặc bạn có thể dùng rtrim để lược bỏ dấu phẩy cuối của chuỗi trước khi explode
Có vẻ đúng, vì bạn đang check != " " chứ không phải != "" nên nó sẽ bị lọt case. Nhưng mình nghĩ bạn nên dùng các package giúp tạo tags để hạn chế nhập bậy bạ dưới front-end trước khi submit lên server.
@viethuong2072000 package nào vậy bạn... có thể cho mình một số gợi ý
@thuyenhv2101 thiếu gì, google jquery tag input là ra đầy mà
Bạn có thể để kiểu này cho mọi người dễ nhìn hơn, thêm tên ngôn ngữ sau ```
Ví dụ ```php sẽ được như thế này
@quankm1097 cảm ơn, có ai giúp em ko? thông não em với đi