首頁 > php框架 > Laravel > 主體

歸納整理Laravel基礎知識總結

WBOY
發布: 2022-04-19 21:43:33
轉載
3054 人瀏覽過

這篇文章為大家帶來了關於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.net
    本網站聲明
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    熱門教學
    更多>
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板