Giải pháp chuyển đổi số trọn gói cho doanh nghiệp Việt

Controller trong Laravel - Tài liệu lập trình laravel

Tài liệu lập trình laravel

← Toàn bộ tài liệu


Bài 9: Controller trong Laravel

Bài 9/28 Xem dạng sách

-Trong mô hình MVC thì project sẽ được chia ra làm 3 phần(Model,View,Controller) và trong Laravel framework cũng chia làm 3 phần như vậy. Ở phần trước mình đã giới thiêu với các bạn về view trong Laravel rồi. Và ở phần này mình sẽ giới thiệu với các bạn về Controller trong Laravel.

 

1,Tạo controller trong Laravel.

 

-Cũng giống như view, để tạo controller trong Laravel cũng phải có một số ràn buộc như sau:

  • Controller phải được đặt trong đường dẫn App\Http\controllers
  • Tên của controller phải giống với tên class trong file controller đó.
  • Class controller (do bạn tạo) phải extends(kế thừa) từ Controller (chú ý chữ C phải viết hoa).

=>Cách tạo file: -Ở trong Laravel để tạo controller thì chúng ta có hai cách:

Cách 1: Tạo bằng tay.

-Chúng ta có thể tạo một file controller bằng tay hoặc bằng cmd thuần trong đường dẫn App\Http\Controllers. Và để sử dụng được controller đó thì bắt buộc các bạn phải tuân thủ 3 điều kiện phía trên nhé.

-Ví dụ: mình tạo một Homecontroller.php trong App\Http\Controllers thì trong file sẽ có nội dung như sau:

php
copy
<?php
namespace App\Http\Controllers;

class Homecontroller extends Controller
{
    //your code
}

Cách 2:  Tạo bằng lệnh laravel cung cấp sẵn. + Để tạo một controller bằng lệnh trong Laravel thì các bạn chỉ việc mở commanline lên và trỏ vào thư mục chứa project Laravel của bạn (xem lại bài 1) và gõ lệnh theo cú pháp.

php
copy
php artisan make:controller Controllername

Hoặc

php
copy
php artisan make:controller ControllerName --resource

để tạo resource controllers

  • Chú thích: controllername là tên controller các bạn muốn tạo.

Khi đó Laravel sẽ tự sinh cho chúng ta 1 file ControllerName và có sẵn code như sau:

php
copy
<?php

namespace App\Http\Controllers;

use App\User;
use App\Http\Controllers\Controller;

class ControllerName extends Controller
{
    //
}

-Và với resource controllers:

php
copy
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class ControllerName extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}

=>Các bạn thấy cách này khá đơn giản đúng không.

2,Sử dụng dụng các action trong Controllers.

 

-Để tạo một action trong controllers thì chúng ta chỉ việc tạo một hàm ở trong controllers và gọi nó ở trong Route là được.

-Ví dụ: Mình sẽ tạo một controllers home controller và một hàm là index.

php
copy
<?php
namespace App\Http\Controllers;

class HomeController extends Controller
{
    public function index(){
    	echo "Đây là index trong homecontroller";
    }
}

Và chúng ta sẽ tạo một route để gọi đến action đó.

php
copy
Route::get('call-controller', 'Homecontroller@index');

-Như thế là chúng ta đã gọi và sử dụng được action trong Controllers rồi.

3,Truyền tham số trong action Controllers.

-Để truyền tham số trong action Controllers thì nó hoàn toàn giống PHP thuần, nên mọi người đọc ví dụ sau của mình rồi tự suy ra kết luận nhé.

-Ví Dụ: Vẫn với homecontroller ở trên, nhưng mình sẽ cho truyền tham số vào controllers như sau:

php
copy
<?php
namespace App\Http\Controllers;

class HomeController extends Controller
{
    public function index($name, $age){
    	echo "Xin chào $name, $age tuổi";
    }
}

Và mình sẽ khởi tạo một route có truyền tham số cho nó như sau:

php
copy
Route::get('a/{name}/{age}', 'HomeController@index')->where(['name' => '[a-zA-Z]+', 'age' => '[0-9]+']);

(ai không hiểu xem lại bài 5 nhé) -Như thế là bạn đã có thể truyền tham số cho action trong controllers rồi.

4,Lời Kết.

-Qua phần chia sẻ cơ bản về controllers của mình ở trên thì mình rất hy vọng là mọi người có và nắm được cái nhìn tổng quan cũng như là cách sử dụng Controllers cơ bản trong Larvel. Phần sau mình sẽ giới thiệu với mọi người về cách cấu hình database và xử lý truy vấn với Query Buider trong Laravel.

Sơ đồ quan hệ các bảng

Table Name: {{table.name}}
Num Name Type
{{field_index+1}}
{{field.name}} {{field.type}}

Hỏi đáp

Gửi với tên {{comment_full_name}}

Chưa có câu hỏi nào cho bài này.

Zalo 0936.006.058 Hotline 0936.006.058