Laravel пропонує ефективний спосіб витягування значень з кількох колонок колекцій за допомогою методу map. На відміну від методу pluck(), який обмежений лише однією колонкою, комбінація map з only дозволяє більш гнучко працювати з даними.
Поєднання методів map та only робить можливим ефективне витягування конкретних колонок з колекцій. Ось як можна реалізувати це:
<?php
namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
public function list()
{
return Article::take(20)->get()->map->only([
'title',
'content',
'summary',
'url_path'
]);
}
}
Розглянемо практичний приклад для системи управління статтями:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->text('summary');
$table->string('url_path');
$table->timestamps();
});
}
};
// ArticleSeeder.php
use App\Models\Article;
class ArticleSeeder extends Seeder
{
public function run()
{
Article::create([
'title' => 'Getting Started',
'content' => 'Повний текст статті...',
'summary' => 'Короткий посібник для початківців',
'url_path' => 'getting-started'
]);
Article::create([
'title' => 'Advanced Topics',
'content' => 'Тематичний контент...',
'summary' => 'Глибоке занурення у функції',
'url_path' => 'advanced-topics'
]);
}
}
Відповідь API міститиме лише вказані поля:
[
{
"title": "Getting Started",
"content": "Повний текст статті...",
"summary": "Короткий посібник для початківців",
"url_path": "getting-started"
},
{
"title": "Advanced Topics",
"content": "Тематичний контент...",
"summary": "Глибоке занурення у функції",
"url_path": "advanced-topics"
}
]
Комбінація map з only забезпечує чистий і ефективний спосіб витягування декількох колонок з колекцій Laravel, спрощуючи трансформацію даних і зберігаючи код читабельним та підтримуваним
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!
У сучасній веб-розробці аутентифікація є ключовою для захисту додатків і даних користувачів. Дізнайтеся, як модуль nuxt-sanctum-authentication спростить інтеграцію між Nuxt 3 та Laravel Sanctum, забезпечуючи надійний і зручний спосіб реалізації аутентифікації для вашого проєкту
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення