Receber por email
← Voltar para o catálogo

laravel12

Laravel 12 framework development assistant. Use when the user needs to: (1) Create Laravel controllers, (2) Create Laravel models, (3) Create Laravel commands, (4) Create middleware, (5) Create facades, (6) Implement services, (7) Configure routes, (8) Use dependency injection, (9) Handle validation, (10) Work with Eloquent ORM, or any other Laravel 12 development tasks. Triggers on phrases like \

23estrelas
Atualizado há 6 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add fanqingxuan/awesome-skills

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/laravel12/svg)](https://www.skillteca.com.br/skills/laravel12)

Skills relacionadas

Ver todas de Produtividade →

Alerta por categoria

Receba novas skills de Produtividade toda segunda

1 email curto, só com as skills novas de Produtividade. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

Laravel 12 开发指南

Laravel 12 框架开发助手,专注于控制器、模型、命令行工具、服务层的快速开发。

常用 Artisan 命令

# 生成控制器
php artisan make:controller UserController

# 生成资源控制器(RESTful)
php artisan make:controller UserController --resource

# 生成 API 控制器
php artisan make:controller API/UserController --api

# 生成模型
php artisan make:model User

# 生成模型 + 迁移文件
php artisan make:model User -m

# 生成模型 + 迁移 + 工厂 + 控制器
php artisan make:model User -mcf

# 生成命令
php artisan make:command ImportDataCommand

# 生成中间件
php artisan make:middleware CheckUserRole

# 生成服务提供者(用于注册门面)
php artisan make:provider PaymentServiceProvider

# 生成请求验证类
php artisan make:request StoreUserRequest

# 生成迁移文件
php artisan make:migration create_users_table

# 执行迁移
php artisan migrate

# 回滚迁移
php artisan migrate:rollback

# 生成 Seeder
php artisan make:seeder UserSeeder

# 执行 Seeder
php artisan db:seed

# 清除缓存
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan view:clear

# 启动开发服务器
php artisan serve

快速示例

控制器

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Http\JsonResponse;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index(): JsonResponse
    {
        $users = User::all();

        return response()->json([
            'success' => true,
            'data' => $users
        ]);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request): JsonResponse
    {
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|email|unique:users',
        ]);

        $user = User::create($validated);

        return response()->json([
            'success' => true,
            'data' => $user
        ], 201);
    }

    /**
     * Display the specified resource.
     */
    public function show(User $user): JsonResponse
    {
        return response()->json([
            'success' => true,
            'data' => $user
        ]);
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, User $user): JsonResponse
    {
        $validated = $request->validate([
            'name' => 'sometimes|string|max:255',
            'email' => 'sometimes|email|unique:users,email,' . $user->id,
        ]);

        $user->update($validated);

        return response()->json([
            'success' => true,
            'data' => $user
        ]);
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(User $user): JsonResponse
    {
        $user->delete();

        return response()->json([
            'success' => true,
            'message' => 'User deleted successfully'
        ]);
    }
}

模型(Eloquent ORM)

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Model
{
    use HasFactory, SoftDeletes;

    /**
     * The table associated with the model.
     */
    protected $table = 'users';

    /**
     * The attributes that are mass assignable.
     */
    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    /**
     * The attributes that should be hidden for serialization.
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast.
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
        'password' => 'hashed',
    ];

    /**
     * Get the posts for the user.
     */
    public function posts()
    {
        return $this->hasMany(Post::class);
    }

    /**
     * Get the user's profile.
     */
    public function profile()
    {
        return $this->hasOne(Profile::class);
    }
}

命令(Artisan Command)

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use App\Models\User;

class ImportDataCommand extends Command
{
    /**
     * The name and signature of the console command.
     */
    protected $signature = 'import:data {file} {--force}';

    /**
     * The console command description.
     */
    protected $description = 'Import data from file';

    /**
     * Execute the console command.
     */
    public function handle(): int
    {
        $file = $this->argument('file');
        $force = $this->option('force');

        $this->info("Processing file: {$file}");

        if ($force) {
            $this->warn('Force mode enabled');
        }

        // 处理逻辑
        $bar = $this->output->createProgressBar(100);
        $bar->start();

        for ($i = 0; $i < 100; $i++) {
            // 处理数据
            $bar->advance();
        }

        $bar->finish();
        $this->newLine();

        $this->info('Import completed successfully!');

        return Command::SUCCESS;
    }
}

中间件(Middleware)

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;

class CheckUserRole
{
    /**
     * Handle an incoming request.
     */
    public function handle(Request $request, Closure $next, string $role): Response
    {
        if (!$request->user() || !$request->user()->hasRole($role)) {
            abort(403, 'Unauthorized action.');
        }

        return $next($request);
    }
}

注册中间件(在 app/Http/Kernel.php 或 bootstrap/app.php):

// 全局中间件
protected $middleware = [
    \App\Http\Middleware\CheckUserRole::class,
];

// 路由中间件
protected $middlewareAliases = [
    'role' => \App\Http\Middleware\CheckUserRole::class,
];

使用中间件:

// 在路由中使用
Route::get('/admin', function () {
    // ...
})->middleware('role:admin');

// 在控制器构造函数中使用
public function __construct()
{
    $this->middleware('role:admin');
}

门面(Facade)

创建服务类:

<?php

namespace App\Services;

class PaymentService
{
    public function process(array $data): array
    {
        // 处理支付逻辑
        return [
            'status' => 'success',
            'transaction_id' => uniqid(),
        ];
    }

    public function refund(string $transactionId): bool
    {
        // 退款逻辑
        return true;
    }
}

创建门面类:

<?php

namespace App\Facades;

use Illuminate\Support\Facades\Facade;

class Payment extends Facade
{
    /**
     * Get the registered name of the component.
     */
    protected static function getFacadeAccessor(): string
    {
        return 'payment';
    }
}

注册服务提供者(在 app/Providers/AppServiceProvider.php):

<?php

namespace App\Providers;

use App\Services\PaymentService;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function register(): void
    {
        $this->app->singleton('payment', function ($app) {
            return new PaymentService();
        });
    }
}

使用门面:

use App\Facades\Payment;

// 调用门面方法
$result = Payment::process([
    'amount' => 100,
    'currency' => 'USD',
]);

// 退款
Payment::refund($transactionId);

服务类

<?php

namespace App\Services;

use App\Models\User;
use Illuminate\Support\Facades\Hash;

class UserService
{
    /**
     * Create a new user.
     */
    public function create(array $data): User
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }

    /**
     * Update user information.
     */
    public function update(User $user, array $data): User
    {
        $user->update($data);

        return $user->fresh();
    }

    /**
     * Delete a user.
     */
    public function delete(User $user): bool
    {
        return $user->delete();
    }

    /**
     * Find user by email.
     */
    public functio
Compartilhar X LinkedIn