搜尋
首頁php框架Laravel歸納整理Laravel基礎知識總結

這篇文章為大家帶來了關於laravel的相關知識,其中主要介紹了一些基礎知識,包括了怎麼安裝Laravel、路由、驗證器、視圖等等相關內容,下面一起來看一下,希望對大家有幫助。

歸納整理Laravel基礎知識總結

【相關推薦:laravel影片教學

一、安裝laravle

1、安裝composer

2、執行指令:

composer create-project laravel/laravel 專案資料夾名-- prefer-dist

歸納整理Laravel基礎知識總結

二、目錄簡介

  • app:應用程式的核心程式碼

  • bootstrap:一個引導框架的app.php文件,一個cache目錄(包含路由及快取文件),框架啟動文件,一般情況不動。

  • config:所有設定檔

  • #database:其中migrations目錄可以產生資料表。

  • public:入口檔案存放地,以及靜態資源(和tp類似)

  • resources

  • routes:所有應用程式的路由定義

  • tests:可用來單元測試

  • vendor:所有composer依賴套件

三、路由初識

1、常見的幾個請求

  • #Route::get(##                                 u                         r                         l                         ,                            url,             u
  • r#l##,callback);Route::post(#                                 u                         r                         l                         ,                            url,             u
  • r
  • #l##,callback);Route::put(#                                 u                         r                         l                         ,                            url,             ur
  • #l##,callback);Route::delete(#                                 u                         r                         l                         ,                            url,             ur
  • #l
##,

callback);

2、符合指定的請求方式

Route::match(['get','post'],'/',function(){});

3、設定任意請求方式

Route::any('/home', function () {
    });

4、給路由加必填參數

Route::get('/home/{id}', function ($id) {
    echo 'id为:'.$id;});

5、增加路由參數

Route::get('/home/{id?}', function ($id = '') {
    echo 'id为:'.$id;});
6、透過?形式傳遞get參數
    Route::get('/home', function () {
        echo 'id为:'.$_GET['id'];});
  • 7、增加路由給路由
  • Route::any('/home/index', function () {
        echo '测试';})->name('hh');
  • 8、設定路由群組
  • 例如有下列路由:
  • /admin/login

    /admin/index

    /admin /logout

    /admin/add

    如果一個一個添加是比較麻煩的,他們有一個共同的區別,都是有/admin/前綴,可設定一個路由群群組進行新增:###
    Route::group(['prefix'=>'admin'], function () {
        Route::get('test1', function () {
            echo 'test1';
        });
        Route::get('test2', function () {
            echo 'test2';
        });});
    ###此時就可透過/admin/test1來進行存取了。 ######9、路由設定控制器######控制器可以建造一個前台和一個後台:###

    歸納整理Laravel基礎知識總結

    命令行创建路由:

    php artisan make:controller Admin/IndexController

    基本路由建立:

    Route::get('test/index','TestController@index');

    分目录路由建立:

    Route::get('/admin/index/index','Admin\IndexController@index');

    四、laravel验证器

    引入:use Illuminate\Support\Facades\Validator

    $param = $request->all();$rule = [
        'name'=>'required|max:2',];$message = [
        'required'  => ':attribute不能为空',
        'max' => ':attribute长度最大为2'];$replace = [
        'name' => '姓名',];$validator = Validator::make($param, $rule, $message,$replace);if ($validator->fails()){
        return response()->json(['status'=>0,'msg'=>$validator->errors()->first()]);}

    五、控制器获取用户输入的值

    在控制器中如果要使用一个类,例如use Illuminate\Http\Request,就可以简写为use Request
    但是需要在config目录下的app.php配置文件中加入:

    'aliases' => [
    
            'App' => Illuminate\Support\Facades\App::class,
            'Arr' => Illuminate\Support\Arr::class,
            'Artisan' => Illuminate\Support\Facades\Artisan::class,
            'Auth' => Illuminate\Support\Facades\Auth::class,
            'Blade' => Illuminate\Support\Facades\Blade::class,
    
            'Request' => Illuminate\Support\Facades\Request::class,
    
        ],

    1、获取用户单个输入值:

    Input::get('id')

    2、获取用户输入的所有值:

    Input::all()

    打印出来的是数组

    关于dd(dump+die)

    3、获取用户输入指定的值:

    Input::only(['id','name']  //只接收id,其余不接受

    4、获取用户输入指定值之外的值:

    Input::except(['name']    //不接收name,其余都接收

    5、判断某个值是否存在

    Input::has('name')    //存在返回true  不存在返回false  其中0返回true

    六、视图的创建与使用

    1、视图的创建

    视图也可分目录管理:

    歸納整理Laravel基礎知識總結
    控制器语法:

    return view('home/test');

    也可写为:

    return view('home.test');

    2、变量映射

    控制器中:

    return view('home/test',['day'=>time()]);

    视图中:

    {{$day}}

    其中控制器中变量映射有三种:

    • view(模板文件,数组)
    • view(模板文件)->with(数组)
    • view(模板文件)->with(数组)->with(数组)

    了解一下compact数组。

    3、视图渲染

    3.1 foreach的使用

    控制器中:

    public function index(){
    
            $arr = [
                0 => [
                    'name' => 'tom',
                    'age' => '12',
                ],
                1 => [
                    'name' => 'bby',
                    'age' => '13',
                ]
            ];
            return view('home/test',['data'=>$arr]);
        }

    视图中:

    @foreach($data as $k=>$v)
        键:{{$k}}
        值:{{$v['name']}}    <br>@endforeach

    3.2 if的使用

    @if(1==2)
        是的
    @else
        不是的
    @endif

    4、视图之间的引用

    @include('welcome')

    七、模型的创建与使用

    1、创建模型的命令

    php artisan make:model Model/Admin/Member

    此时,就会在app目录内创建:
    歸納整理Laravel基礎知識總結

    2、模型基本设置

    <?phpnamespace  App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Member extends Model{
        //定义表名
        protected $table = &#39;student&#39;;
        //定义主键
        protected $primaryKey = &#39;id&#39;;
        //定义禁止操作时间
        public $timestamps = false;
        //设置允许写入的字段
        protected $fillable = [&#39;id&#39;,&#39;sname&#39;];}

    3、模型数据添加

    方式一:

    	 $model = new Member();
    	 $model->sname = '勒布朗';
    	 $res = $model->save();
    	 dd($res);

    方式二:

         $model = new Member();
         $res = $model->create($request->all());
         dd($res);

    4、模型的表连接

    //查询客户与销售顾问的客资列表$data = Custinfo::select(['custinfo.*', 'customers.name'])
        ->join('customers', 'customers.id', '=', 'custinfo.cust_id')
        ->where($where)
        ->get()
        ->toArray();

    5、简单模型关联一对一

    <?phpnamespace  App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Phone extends Model{
        //定义表名
        protected $table = &#39;phone&#39;;
    
        //定义主键
        protected $primaryKey = &#39;id&#39;;
    
        //定义禁止操作时间
        public $timestamps = false;
    
        //设置允许写入的字段
        protected $fillable = [&#39;id&#39;,&#39;uid&#39;,&#39;phone&#39;];}
    <?phpnamespace  App\Model\Admin;use Illuminate\Database\Eloquent\Model;class Member extends Model{
        //定义表名
        protected $table = &#39;student&#39;;
    
        //定义主键
        protected $primaryKey = &#39;id&#39;;
    
        //定义禁止操作时间
        public $timestamps = false;
    
        //设置允许写入的字段
        protected $fillable = [&#39;id&#39;,&#39;sname&#39;];
    
        /**
         * 获取与用户关联的电话号码记录。
         */
        public function getPhone()
        {
            return $this->hasOne('App\Model\Admin\Phone', 'uid', 'id');
        }}
        //对象转数组
        public function Arr($obj)
        {
            return json_decode(json_encode($obj), true);
        }
    
    
        public function index(){
            $infoObj = Member::with('getPhone')->get();
            $infoArr = $this->Arr($infoObj);
            print_r($infoArr);
        }

    歸納整理Laravel基礎知識總結
    歸納整理Laravel基礎知識總結

    八、日志

    1、自定义日志目录

    config目录下的logging.php中的channels配置:

     'custom' => [
         'driver' => 'single',
         'path' => storage_path('logs/1laravel.log'),
         'level' => 'debug',
     ]

    控制器中:

    $message = ['joytom','rocker'];Log::channel('custom')->info($message);

    九、迁移文件

    建立一个迁移文件:php artisan make:migration create_shcool_table

    会在database\migrations下创建一个文件:
    歸納整理Laravel基礎知識總結
    在up方法中增加如下代码:

    <?phpuse  Illuminate\Database\Migrations\Migration;use Illuminate\Database\Schema\Blueprint;use Illuminate\Support\Facades\Schema;class CreateShcoolTable extends Migration{
        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create(&#39;shcool&#39;, function (Blueprint $table) {
                $table->bigIncrements('id');
                $table->string('school_name','20')->notNull()->unique();
    
                $table->tinyInteger('status')->default(1);
    
                $table->timestamps();
            });
        }
    
        /**
         * Reverse the migrations.
         *
         * @return void
         */
        public function down()
        {
            Schema::dropIfExists('shcool');
        }}

    更详细的生成SQL方法请参考:数据迁移文件常用方法速查表

    写好SQL文件以后,执行:php artisan migrate
    歸納整理Laravel基礎知識總結
    将会生成数据表,其中操作日志将记录在这个表中:

    歸納整理Laravel基礎知識總結
    php artisan migrate:rollback:回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

    【相关推荐:laravel视频教程

    以上是歸納整理Laravel基礎知識總結的詳細內容。更多資訊請關注PHP中文網其他相關文章!

  • 陳述
    本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
    Laravel(PHP)與Python:開發環境和生態系統Laravel(PHP)與Python:開發環境和生態系統Apr 12, 2025 am 12:10 AM

    Laravel和Python在開發環境和生態系統上的對比如下:1.Laravel的開發環境簡單,僅需PHP和Composer,提供了豐富的擴展包如LaravelForge,但擴展包維護可能不及時。 2.Python的開發環境也簡單,僅需Python和pip,生態系統龐大,涵蓋多個領域,但版本和依賴管理可能複雜。

    Laravel和後端:為Web應用程序提供動力邏輯Laravel和後端:為Web應用程序提供動力邏輯Apr 11, 2025 am 11:29 AM

    Laravel是如何在後端邏輯中發揮作用的?它通過路由系統、EloquentORM、認證與授權、事件與監聽器以及性能優化來簡化和增強後端開發。 1.路由系統允許定義URL結構和請求處理邏輯。 2.EloquentORM簡化數據庫交互。 3.認證與授權系統便於用戶管理。 4.事件與監聽器實現松耦合代碼結構。 5.性能優化通過緩存和隊列提高應用效率。

    為什麼Laravel如此受歡迎?為什麼Laravel如此受歡迎?Apr 02, 2025 pm 02:16 PM

    Laravel受歡迎的原因包括其簡化開發過程、提供愉快的開發環境和豐富的功能。 1)它吸收了RubyonRails的設計理念,結合PHP的靈活性。 2)提供瞭如EloquentORM、Blade模板引擎等工具,提高開發效率。 3)其MVC架構和依賴注入機制使代碼更加模塊化和可測試。 4)提供了強大的調試工具和性能優化方法,如緩存系統和最佳實踐。

    django或laravel哪個更好?django或laravel哪個更好?Mar 28, 2025 am 10:41 AM

    Django和Laravel都是全棧框架,Django適合Python開發者和復雜業務邏輯,Laravel適合PHP開發者和優雅語法。 1.Django基於Python,遵循“電池齊全”哲學,適合快速開發和高並發。 2.Laravel基於PHP,強調開發者體驗,適合小型到中型項目。

    哪個是更好的PHP或Laravel?哪個是更好的PHP或Laravel?Mar 27, 2025 pm 05:31 PM

    PHP和Laravel不是直接可比的,因為Laravel是基於PHP的框架。 1.PHP適合小型項目或快速原型開發,因其簡單直接。 2.Laravel適合大型項目或高效開發,因其提供豐富功能和工具,但學習曲線較陡,性能可能不如純PHP。

    Laravel是前端還是後端?Laravel是前端還是後端?Mar 27, 2025 pm 05:31 PM

    laravelisabackendframeworkbuiltonphp,設計ForweBapplicationDevelopment.itfocusessonserver-sideLogic,databasemagemention和Applicationstructure和CanBeintegratedWithFrontendTechnologiesLikeLikeVue.jsorreActeReacterVue.jsorreActforforfull-stackDevefloct。

    如何在Laravel中創建和使用自定義刀片指令?如何在Laravel中創建和使用自定義刀片指令?Mar 17, 2025 pm 02:50 PM

    本文討論了Laravel中的創建和使用自定義刀片指令以增強模板。它涵蓋了定義指令,在模板中使用它們,並在大型項目中管理它們,強調了改進的代碼可重複性和R等好處

    如何使用Laravel的組件來創建可重複使用的UI元素?如何使用Laravel的組件來創建可重複使用的UI元素?Mar 17, 2025 pm 02:47 PM

    本文討論了使用組件在Laravel中創建和自定義可重複使用的UI元素,從而為組織提供最佳實踐並建議增強包裝。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前By尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25:如何解鎖Myrise中的所有內容
    3 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    Atom編輯器mac版下載

    Atom編輯器mac版下載

    最受歡迎的的開源編輯器

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能