Heim > PHP-Framework > Laravel > Hauptteil

Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

WBOY
Freigeben: 2022-04-19 21:43:33
nach vorne
3055 Leute haben es durchsucht

Dieser Artikel vermittelt Ihnen relevantes Wissen über laravel. Er stellt hauptsächlich einige grundlegende Kenntnisse vor, darunter die Installation von Laravel, Routing, Validatoren, Ansichten und andere verwandte Inhalte Sie. Jeder ist hilfreich.

Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

[Verwandte Empfehlungen: Laravel-Video-Tutorial]

1. Installieren Sie Composer

2. Führen Sie den Befehl aus:

Composer Projekt erstellen larav el /laravel Projektordnername--prefer-dist„Bildbeschreibung

2. Verzeichniseinführungcomposer create-project laravel/laravel 项目文件夹名 --prefer-dist

Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

二、目录简介

  • app:应用程序的核心代码

  • bootstrap:一个引导框架的app.php文件,一个cache目录(包含路由及缓存文件),框架启动文件,一般情况不动。

  • config:所有配置文件

  • database:其中migrations目录可以生成数据表。

  • public:入口文件存放地,以及静态资源(和tp类似)

  • resources

  • routes:应用的所有路由定义

  • tests:可用来单元测试

  • vendor

    • app: Der Kerncode der Anwendung🎜
    • 🎜bootstrap : Eine app.php-Datei, die das Framework leitet, ein Cache-Verzeichnis (einschließlich Routing- und Cache-Dateien) und die Framework-Startdatei. Im Allgemeinen wird sie nicht verschoben. 🎜
    • 🎜config: Alle Konfigurationsdateien 🎜
    • 🎜database: Das Migrationsverzeichnis kann Datentabellen generieren. 🎜
    • 🎜public: Speicherort der Eintragsdatei und statische Ressourcen (ähnlich wie tp) 🎜
    • 🎜resources: 🎜
    • 🎜routes: Alle Routendefinitionen der Anwendung🎜
    • 🎜tests: Kann für Unit-Tests verwendet werden🎜 li>🎜vendor: alle Composer-Abhängigkeitspakete🎜

    3. Erste Einführung in das Routing

    1. Mehrere häufige Anfragen

    • Route::get( ​ ​​ ​​                   u                                     R                                     l                                     , ,                   ​​ ​​   URL,  ​​ url,callback);
    • Route::post( ​ ​​ ​​                   u                                     R                                     l                                     , ,                   ​​ ​​   URL,  ​​ url,callback);
    • Route::put( ​ ​​ ​​                   u                                     R                                     l                                     , ,                   ​​ ​​   URL,  ​​ url,callback);
    • Route::delete( ​ ​​ ​​                   u                                     R                                     l                                     , ,                   ​​ ​​   URL,  ​​ url,Rückruf);

    2. Passen Sie die angegebene Anfragemethode an

    rrree

    3. Konfigurieren Sie eine beliebige Anfragemethode

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

    4. Routing bereitstellen Erforderliche Parameter hinzufügen

    Route::any('/home', function () {
        });
    Nach dem Login kopieren
    5. Fügen Sie der Route optionale Parameter hinzu /admin/add

    Wenn es schwieriger ist, sie einzeln hinzuzufügen, haben sie einen gemeinsamen Unterschied, alle haben das Präfix /admin/, Sie können eine Routing-Gruppe zum Hinzufügen einrichten:

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

    Sie können jetzt darauf zugreifen /admin/test1.

    9. Routing-Konfigurationscontroller

    Der Controller kann einen Frontdesk und einen Backdesk aufbauen:

    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

    命令行创建路由:

    php artisan make:controller Admin/IndexController
    Nach dem Login kopieren

    基本路由建立:

    Route::get('test/index','TestController@index');
    Nach dem Login kopieren

    分目录路由建立:

    Route::get('/admin/index/index','Admin\IndexController@index');
    Nach dem Login kopieren

    四、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()]);}
    Nach dem Login kopieren

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

    在控制器中如果要使用一个类,例如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,
    
        ],
    Nach dem Login kopieren

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

    Input::get('id')
    Nach dem Login kopieren

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

    Input::all()
    Nach dem Login kopieren

    打印出来的是数组

    关于dd(dump+die)

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

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

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

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

    5、判断某个值是否存在

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

    六、视图的创建与使用

    1、视图的创建

    视图也可分目录管理:

    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es
    控制器语法:

    return view('home/test');
    Nach dem Login kopieren

    也可写为:

    return view('home.test');
    Nach dem Login kopieren

    2、变量映射

    控制器中:

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

    视图中:

    {{$day}}
    Nach dem Login kopieren

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

    • 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]);
        }
    Nach dem Login kopieren

    视图中:

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

    3.2 if的使用

    @if(1==2)
        是的
    @else
        不是的
    @endif
    Nach dem Login kopieren

    4、视图之间的引用

    @include('welcome')
    Nach dem Login kopieren

    七、模型的创建与使用

    1、创建模型的命令

    php artisan make:model Model/Admin/Member
    Nach dem Login kopieren

    此时,就会在app目录内创建:
    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

    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;];}
    Nach dem Login kopieren

    3、模型数据添加

    方式一:

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

    方式二:

         $model = new Member();
         $res = $model->create($request->all());
         dd($res);
    Nach dem Login kopieren

    4、模型的表连接

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

    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;];}
    Nach dem Login kopieren
    <?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');
        }}
    Nach dem Login kopieren
        //对象转数组
        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);
        }
    Nach dem Login kopieren

    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es
    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es

    八、日志

    1、自定义日志目录

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

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

    控制器中:

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

    九、迁移文件

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

    会在database\migrations下创建一个文件:
    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es
    在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');
        }}
    Nach dem Login kopieren

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

    写好SQL文件以后,执行:php artisan migrate
    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es
    将会生成数据表,其中操作日志将记录在这个表中:

    Fassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es
    php artisan migrate:rollback:回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

    【相关推荐:laravel视频教程

Das obige ist der detaillierte Inhalt vonFassen Sie das Grundwissen von Laravel zusammen und organisieren Sie es. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage