Laravel 學習的基礎知識

來源:互聯網
上載者:User
這篇文章主要介紹了關於Laravel 學習的基礎知識,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

1.MVC簡介

MVC全名是Model View Controller,是模型-視圖-控制器的縮寫
Model是應用程式中用於處理應用程式資料邏輯的部分
View是應用程式中處理資料顯示的部分
Controller是應用程式中處理使用者互動的部分

2.laravel核心目錄檔案

  • app包含了使用者的核心代碼

  • booststrap包含架構啟動和配置負載檔案

  • config包含所有的設定檔

  • database包含資料庫填充與遷移檔案

  • public包含項目入口可靜態資源檔案

  • resource包含視圖與原始的資源檔

  • stroage包含編譯後的模板檔案以及基於檔案的session和檔案快取、日誌和架構檔案

  • tests單元測試檔案

  • wendor包含compose的依賴檔案

3.路由

多請求路由

Route::match(['get', 'post']), 'match', funtion(){    return 'match';});Route::any(['get', 'post']),  funtion(){    return 'any';});

路由參數

Route::get('user/{name}',  funtion($name){    return $id;})->where('name', '[A-Za-z]+');Route::get('user/{id}/{name?}',  funtion($id, $name='phyxiao'){    return $id. $name;})->where(['id' => '[0-9]+', 'name'=> '[A-Za-z]+']);

路由別名

Route::get('user/home',  ['as' => 'home', funtion(){    return route('home');}]);

路由群組

Route::group(['prefix' => 'user'], funtion(){    Route::get('home', funtion()   {    return 'home';   });    Route::get('about', funtion()   {    return 'about';   });});

路由輸出視圖

Route::get('index',  funtion(){    return view('welcome');});

4.控制器

建立控制器

php artisan make:controller UserControllerphp artisan make:controller UserController --plain

路由關聯控制器

Route::get('index',  'UserController@index');

5.模型

php artisan make:model User

6.資料庫

三種方式:DB facode原始尋找查詢構造器Eloquent ORM
相關檔案 config/database.php.env

查詢構造器

$bool = DB::table('user')->insert(['name => phyxiao', 'age' => 18]);$id = DB::table('user')->insertGetId(['name => phyxiao', 'age' => 18]);$bool = DB::table('user')->insert([    ['name => phyxiao', 'age' => 18],    ['name => aoteman', 'age' => 19],);var_dump($bool);
$num= DB::table('user')->where('id', 12)->update(['age' => 30]);$num= DB::table('user')->increment('age', 3);$num= DB::table('user')->decrement('age', 3);$num= DB::table('user')->where('id', 12)->increment('age', 3);$num= DB::table('user')->where('id', 12)->increment('age', 3, ['name' =>'handsome']);
$num= DB::table('user')->where('id', 12)->delete();$num= DB::table('user')->where('id', '>=', 12)->delete();DB::table('user')->truncate();
$users= DB::table('user')->get();$users= DB::table('user')->where('id', '>=', 12)->get();$users= DB::table('user')->whereRaw('id >= ? and age > ?', [12, 18])->get();dd(users);$user= DB::table('user')->orderBy('id', 'desc')->first();$names = DB::table('user')->pluck('name');$names = DB::table('user')->lists('name', 'id');$users= DB::table('user')->select('id', 'age', 'name')->get();$users= DB::table('user')->chunk(100, function($user){dd($user);if($user->name == 'phyxiao')return false;});
$num= DB::table('user')->count();$max= DB::table('user')->max('age');$min= DB::table('user')->min('age');$avg= DB::table('user')->avg('age');$sum= DB::table('user')->avg('sum');

Eloquent ORM

// 建立模型// app/user.php<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class User extends Model{    //指定表名    protected $table = 'user';    //指定id    protected $primaryKey= 'id';    //指定允許批量賦值的欄位    protected $fillable= ['name', 'age'];    //指定不允許批量賦值的欄位    protected $guarded= [];    //自動維護時間戳記    public $timestamps = true;    protected function getDateFormat()    {        return time();    }    protected function asDateTime($val)    {        return val;    }}
// ORM操作// app/Http/Contollers/userController.phppublic function orm(){    //all    $students = Student::all();    //find    $student = Student::find(12);    //findOrFail    $student = Student::findOrFail(12);    // 結合查詢構造器    $students = Student::get();    $students = Student::where('id', '>=', '10')->orderBy('age', 'desc')->first();    $num = Student::count();    //使用模型新增資料    $students = new Student();    $students->name = 'phyxiao';    $students->age= 18;    $bool = $student->save();    $student = Student::find(20);    echo date('Y-m-d H:i:s', $student->created_at);    //使用模型的Create方法新增資料    $students = Student::create(        ['name' => 'phyxiao', 'age' => 18]    );    //firstOrCreate()    $student = Student::firstOrCreate(        ['name' => 'phyxiao']    );    //firstOrNew()    $student = Student::firstOrNew(        ['name' => 'phyxiao']    );    $bool= $student->save();    //使用模型更新資料    $student = Student::find(20);    $student->name = 'phyxiao';    $student->age= 18;    $bool = $student->save();    $num = Student::where('id', '>', 20)->update(['age' => 40]);    //使用模型刪除資料    $student = Student::find(20);    $bool = $student->delete();    //使用主見刪除資料    $num= Student::destroy(20);    $num= Student::destroy([20, 21]);    $num= Student::where('id', '>', 20)->delete;}

7.Blade模板引擎

<!--展示某個section內容 預留位置-->@yield('content', '內容')<!--定義視圖片段-->@section(‘header’)頭部@show
@extends('layouts')@section(‘header’)    @parent    header@stop@section(‘content’)    content    <!--模板輸出php變數-->    <p>{{$name}}</p>    <!--模板調用php代碼-->    <p>{{ time() }}</p>    <p>{{ date('Y-m-d H:i:s', time()) }}</p>    <p>{{ in_array($name, $arr) ? 'true': 'false' }}</p>    <p>{{ $name or 'default' }}</p>    <!--原樣輸出-->    <p>@{{$name}}</p>    {{--模板注釋--}}    {{--引入子視圖--}}    @include('common', ['msg' => 'erro'])    {{--流量控制--}}    @if ($name == 'phyxiao')        I'm phyxiao    @elseif($name == 'handsome')        I'm handsome    @else        none    @endif    @unless($name == 'phyxiao')        ture    @endunless    @for($i=0; $i < 10; $i++)        {{$i}}    @endfor    @foreach($students as $student)        {{$student->name}}    @endfor    @forelse($students as $student)        {{$student->name}}    @empty        null    @endforelse    <a herf = "{{url('url')}}">text</a>    <a herf = "{{action('UserController@index')}}">text</a>    <a herf = "{{route('url')}}">text</a>@stop

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.