‹ முகப்புக்கு திரும்ப

Laravel Beginners Guide: Routes, Controllers, Eloquent, Blade - ஒரு Small App கட்டிப் பாருங்க

PHP செத்துடுச்சு-னு எல்லாரும் சொல்றாங்க, ஆனா இந்தியாவுல பாதி agency backend இன்னும் Laravel-ல தான் ஓடுது. ஒரு சின்ன app கட்டி Routes, Controllers, Eloquent, Blade எல்லாத்தையும் புரிஞ்சிக்கலாம்.

Keerthika 6 min read
Google-ல் Follow
Web Dev Laravel Beginners Guide: Routes, Controllers, Eloquent, Blade - ஒரு Small App கட்டிப் பாருங்க 6 நிமிடம் மீதம் Google-ல் Follow
Laravel Beginners Guide: Routes, Controllers, Eloquent, Blade - ஒரு Small App கட்டிப் பாருங்க

தமிழ்டெக் AI சுருக்கம்

  • Laravel இந்திய agency, startup backend-ல இன்னும் பெரிய பங்கு
  • ஒரு சின்ன posts app போதும் Routes, Controllers, Eloquent, Blade புரிஞ்சிக்க
  • Laravel Breeze கொஞ்சம் commands-ல login/register தந்துடும்
  • Interview-ல Eloquent relationships, Middleware கேள்விகள் வரும்

AI உதவியுடன் தயாரான சுருக்கம் — தமிழ்டெக் எடிட்டர்ஸ் சரிபார்த்தது.

0:00
0:00
🔒 Listen வசதி subscribers-க்கு மட்டும். Subscribe செய்யுங்கள்

முக்கிய விஷயங்கள்

  • Laravel இன்னும் இந்தியாவுல agency, startup backend வேலையில பெரிய பங்கு வகிக்குது - admin panel, CRM, small business sites எல்லாம் இதுல தான்.
  • ஒரு சின்ன 'posts' app போதும் - Route கிட்டே hit ஆகுது, Route Controller-க்கு போகுது, Controller Eloquent-கிட்டே பேசுது, அப்புறம் Blade அதை காட்டுது.
  • Route என்பது வெறும் URL to function mapping. Controller-ல தான் Logic இருக்கும்.
  • Eloquent அதாவது raw SQL எழுதாம MySQL-ஓட plain PHP-ல பேசற Laravel-ஓட வழி.
  • Blade-ல {{ }} மற்றும் @foreach, @if மாதிரி directives வைச்சி HTML-க்குள்ள PHP-ஐ clean-ஆ கலக்கலாம்.
  • Login/Register பக்கத்த கைல எழுதாம Laravel Breeze கொஞ்சம் commands-ல Auth scaffolding தந்துடும்.
  • இந்த stack இன்னும் இந்திய service companies interview-ல கேள்வி-ஆ வருது, அதனால memory-ல இல்லாம புரிஞ்சிக்கிட்டு தெரிஞ்சிருக்கணும்.

என்ன நடந்தது?

ரெண்டு வருஷத்துக்கு ஒரு தடவை, யாரோ ஒருத்தர் Twitter-ல 'PHP செத்துடுச்சு' சொல்லி போய்டுவாங்க. அப்புறம் அடுத்த வருஷமும் அதே பேச்சு. ஆனா நீங்க ஒரு Chennai அல்லது Coimbatore web agency-ல வேலை செய்தா தெரியும் - hospital appointment system, real estate CRM, school management portal இதெல்லாம் பாதிக்கு பாதி Laravel-ல தான் இருக்கும்.

Laravel flashy-ஆ இல்லை. அதுக்கு funding story இல்லை. ஆனா ஒரு developer weekend-ல ஒரு working app கட்டிடலாம் framework-ஓட சண்டை போடாம. அதனால தான் இது இன்னும் நிக்குது.

இந்த article news இல்ல. ஒரு sit-down guide. நாம ஒரு சின்ன app கட்டுவோம் - blog posts list. இதுல Install, Routes, Controllers, Eloquent, Migrations, Blade, Auth scaffolding எல்லாத்தையும் தொடுவோம்.

Laravel install பண்ணி project structure எப்படி இருக்கும்?

உங்க machine-ல PHP 8.3 அல்லது அதற்கு மேல Version, அப்புறம் Composer இருக்கணும். புது project ஒரு line command.

composer create-project laravel/laravel blog

இது முடிஞ்சவுடன் folder-க்குள்ள போயி பாருங்க. Beginner-ஆ நீங்க கவனிக்கணும்ன்னா இந்த 5 folders தான்:

  • routes/ - உங்க URLs எல்லாம் இங்க இருக்கும்
  • app/Http/Controllers/ - Logic இங்க
  • app/Models/ - Database table-ஐ PHP class-ஆ represent பண்றது
  • resources/views/ - Blade templates
  • database/migrations/ - Table structure definitions

config, storage, vendor folders beginner stage-ல touch பண்ண வேண்டாம். அப்புறம் இந்த command போடுங்க:

php artisan serve

இது local server start பண்ணிடும். Browser-ல http://127.0.0.1:8000 போட்டா app live-ஆ run ஆகுது.

Routes, Controllers எப்படி வேலை செய்யும்?

Route-ன்னா ஒரே ஒரு கேள்விக்கு பதில் - யாரோ இந்த URL-க்கு வந்தா, எந்த function run ஆகணும்? அவ்ளோ தான்.

<?php

use App\Http\Controllers\PostController;
use Illuminate\Support\Facades\Route;

Route::get('/posts', [PostController::class, 'index']);
Route::get('/posts/{id}', [PostController::class, 'show']);
Route::post('/posts', [PostController::class, 'store'])->middleware('auth');

இந்த controller-ஐ generate பண்ண இந்த command போடுங்க: php artisan make:controller PostController. Controller-ல தான் real வேலை நடக்கும் - data fetch பண்றது, input validate பண்றது, எந்த view காட்டணும்ன்னு decide பண்றது.

<?php

namespace App\Http\Controllers;

use App\Models\Post;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::latest()->get();
        return view('posts.index', ['posts' => $posts]);
    }

    public function show($id)
    {
        $post = Post::findOrFail($id);
        return view('posts.show', ['post' => $post]);
    }
}

Route URL எடுக்குது, Controller logic செய்யுது, அப்புறம் view-க்கு பேச்சு கொண்டு போகுது. இது தான் flow.

Eloquent, Migrations - Database-ஓட பேசுறது எப்படி?

Eloquent அதாவது, Table-ஐ நீங்க SQL எழுதாம PHP class மாதிரி handle பண்றது. உதாரணமா, GPay transaction history fetch பண்ணும் backend-ல கூட இந்த மாதிரி pattern தான் இருக்கும்.

முதல்ல Migration create பண்ணணும் - table structure-ஐ code-ல define பண்றது:

php artisan make:migration create_posts_table

அந்த migration file-ல இப்படி எழுதுவீங்க:

public function up(): void
{
    Schema::create('posts', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->text('body');
        $table->timestamps();
    });
}

இப்போ இந்த command போட்டா table உண்டாகும்:

php artisan migrate

அப்புறம் Model create பண்ணணும். Model file simple-ஆ இருக்கும்:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ['title', 'body'];
}

இதை create பண்ண php artisan make:model Post போடலாம். இப்போ Post::latest()->get() எழுதினா போதும், Laravel தானாக SQL query ஆக்கி data கொண்டு வரும்.

Blade templates-ல HTML, PHP எப்படி கலக்குறது?

Blade-ன்னா Laravel-ஓட own templating system. HTML-க்குள்ள PHP மாதிரி data காட்ட, clean-ஆ syntax தருது.

<!-- resources/views/posts/index.blade.php -->
<x-layout>
    <h1>All Posts</h1>

    @foreach ($posts as $post)
        <div class="post-card">
            <h2>{{ $post->title }}</h2>
            <p>{{ Str::limit($post->body, 100) }}</p>
        </div>
    @endforeach

    @if ($posts->isEmpty())
        <p>No posts yet, boss.</p>
    @endif
</x-layout>

{{ }} use பண்ணா Laravel automatic-ஆ HTML escape பண்ணிடும், அதனால XSS attack risk குறையும். @foreach, @if directives PHP-ஓட loop, condition logic-க்கு shortcut தான்.

Login, Register வேலையை யார் பண்ணும்? (Auth scaffolding)

Beginners பல பேருக்கு login/register page கைல எழுதணும்-ன்னு தோணும். அது தேவையே இல்லை. Laravel Breeze பாக்கேஜ் இதை ready-ஆ தந்துடும்.

composer require laravel/breeze --dev
php artisan breeze:install
npm install && npm run build
php artisan migrate

இந்த 4 commands முடிஞ்சவுடனே, login, register, password reset, email verification எல்லாம் ready-ஆ இருக்கும். நீங்க வெறும் customize பண்ணா போதும்.

Beginners செய்யற Common Mistakes என்னென்ன?

  • Model-ல வேலை செய்யணும், Controller-ல SQL எழுதுறது: Controller fat-ஆ ஆகிடும். Database logic-ஐ Model-க்குள்ள வைக்கணும்.
  • Blade-ல {!! !!} எப்போவும் use பண்றது: இது HTML escape பண்ணாது, user input நேரடியா போனா XSS risk. {{ }} தான் default-ஆ use பண்ணணும்.
  • Migration file edit பண்ணிட்டு migrate:fresh போடாம கஷ்டப்படுறது: Migration மாத்தினா, local-ல php artisan migrate:fresh போட்டு table refresh பண்ணணும்.
  • .env file git-க்கு push பண்றது: Database password, API keys எல்லாம் அதுல இருக்கும். .gitignore-ல இருக்கணும்.

இந்தியா IT companies-ல, Interview-ல இது எங்க வரும்?

இந்திய web agencies, small-to-mid service companies-ல Laravel developer role பல இடத்துல வருது - specifically PHP backend developer, full-stack developer positions-ல. Interview-ல 'Eloquent relationship எப்படி define பண்ணுவீங்க', 'Middleware என்ன வேலை செய்யும்', 'Blade-க்கும் plain PHP templating-க்கும் வித்தியாசம் என்ன' மாதிரி கேள்விகள் நேரடியா கேப்பாங்க. இது memory-ல படிக்கிறத விட, ஒரு சின்ன app கட்டி புரிஞ்சிக்கிட்டா நல்லா நிக்கும்.

நீங்க இப்போ என்ன பண்ணுங்க? (Practice Task)

இந்த posts app-ஐ எடுத்துக்கோங்க. இப்போ ஒரு Category model add பண்ணுங்க, Post-க்கும் Category-க்கும் belongsTo relationship define பண்ணுங்க. அப்புறம் Blade view-ல ஒவ்வொரு post card-லயும் அதோட category name காட்டுங்க. இது Eloquent relationships எப்படி வேலை செய்யும்-னு புரிஞ்சிக்க best way.

இந்த app-ஐ Production-க்கு எடுத்துப்போனா என்ன மாறும்?

Localhost-ல வேலை செய்யறது ஒரு கதை, ஆனா client-ஓட domain-ல live ஆக்குறது வேற கதை. சென்னை, கோயம்புத்தூர் agency-ல பல beginners local-ல எல்லாம் super-ஆ run ஆன app-ஐ cPanel shared hosting-க்கு போட்டவுடன் 500 error பார்த்து பதறிடுவாங்க. இதுக்கு காரணம் simple - shared hosting-ல public folder structure, PHP version, file permissions எல்லாம் local machine மாதிரி இருக்காது. அதனால .env file-ல APP_ENV=production, APP_DEBUG=false மாத்தி வைக்கணும், இல்லைன்னா error details எல்லாம் வெளியே தெரிஞ்சு security risk ஆகும்.

Deploy பண்ணும்போது step-by-step பாத்தா: முதல்ல code-ஐ server-க்கு கொண்டு போகணும் (Git அல்லது zip upload), அப்புறம் composer install --optimize-autoloader --no-dev போட்டு dependencies போடணும். அப்புறம் php artisan migrate --force போட்டு database table create பண்ணணும், php artisan config:cache போட்டு config-ஐ cache பண்ணி speed கூட்டணும். பல shared hosting providers Laravel-ஓட public/ folder-ஐ root-ஆ expect செய்யும், அதனால domain root-க்கும் public folder-க்கும் correct-ஆ point பண்ணணும். இது தப்பா இருந்தா whole site 403 அல்லது blank page காட்டும் - இது பலருக்கும் common ஆன mistake தான்.

இப்போ VPS அல்லது managed Laravel hosting (Forge, Ploi மாதிரி tools) use பண்றது trend ஆகி வருது, ஏன்னா shared hosting-ல queue workers, scheduler (cron jobs) சரியா வேலை செய்யாது. Startup-க்கு budget குறைவா இருந்தா shared hosting போதும், ஆனா scale ஆகும்போது DigitalOcean அல்லது AWS-ஓட VPS-க்கு move ஆகுறது தான் இந்திய agencies-ல common path. இந்த deployment knowledge தான் junior developer-க்கும் senior developer-க்கும் உள்ள real வித்தியாசம் - code எழுத தெரியும் எல்லோருக்கும், ஆனா அதை live-ல, real users-ஓட load-ஓட, சரியா நடத்த தெரிஞ்சவங்க தான் விலை போவாங்க.

அடிக்கடி கேட்கப்படும் கேள்விகள்

Laravel கத்துக்க PHP-ல நல்ல basic தெரிஞ்சிருக்கணுமா?

ஆமா, variables, functions, OOP basics (class, object) தெரிஞ்சிருந்தா Laravel எளிதா புரியும். முழு expert ஆக வேண்டாம், basic logic தெரிஞ்சா போதும்.

Eloquent இல்லாம raw SQL எழுதலாமா?

Laravel-ல raw SQL எழுதவும் option இருக்கு (DB::select()), ஆனா Eloquent use பண்ணினா code readable-ஆவும் maintain பண்றதுக்கும் எளிதா இருக்கும். Beginners Eloquent-ல தொடங்குறது நல்லது.

Laravel Breeze, Jetstream-க்கும் வித்தியாசம் என்ன?

Breeze simple-ஆ, minimal auth scaffolding தரும். Jetstream அதுல கூட team management, API tokens மாதிரி extra features வரும். Beginners Breeze-ல தொடங்குறது நல்லது.

Blade இல்லாம React/Vue use பண்ணலாமா?

முடியும். Laravel backend API ஆக use பண்ணி, frontend-க்கு React அல்லது Vue கூட்டலாம். ஆனா சின்ன apps, admin panels-க்கு Blade வேகமா இருக்கும்.

Laravel இன்னும் இந்தியா IT market-ல demand இருக்கா?

ஆமா, குறிப்பா web agencies, small-to-mid service companies-ல Laravel backend developer roles இன்னும் வருது. Startup-களும் quick MVP build பண்ண Laravel use பண்றாங்க.

நாளைய டெக் செய்திகள் உங்க WhatsApp-க்கே

தினமும் ஒரு சின்ன update, இலவசம். TamilTech channel-ஐ follow பண்ணுங்க.

What do you think?

people reacted

Keerthika

தமிழ்டெக் எடிட்டோரியல் டீம் · 3,390 கட்டுரைகள்

Keerthika is an editor at TamilTech, the Tamil and English technology publication founded by Praveen Kumar S. She covers AI, smartphones, gadgets, EVs, startups and cybersecurity i...

மேலும் Keerthika

WhatsApp-ல் TamilTech-ஐக் கேளுங்க

டெக் சந்தேகமா? தமிழிலோ ஆங்கிலத்திலோ கேளுங்க — எங்க WhatsApp அசிஸ்டன்ட் TamilTech கட்டுரைகளில் இருந்து சில நொடிகளில் பதில் சொல்லும்.

தொடர்புடைய செய்திகள்

கருத்துகள் (0)

| Supports **bold**, *italic*, `code`

Be the first to comment!

அடுத்த செய்தி Google: 'பேக் பட்டன் ஹைஜாக்கிங்' தீங்கிழைக்கும் செயல் – ஜூன் 15 முதல் தளங்களின் தரவரிசை குறையலாம்
Tamiltech

Tamiltech

Install app for faster access

Earn XP 🏆
WhatsApp
Notifications