Home > PHP Framework > Laravel > Summarize and organize the basic knowledge of Laravel

Summarize and organize the basic knowledge of Laravel

WBOY
Release: 2022-04-19 21:43:33
forward
3080 people have browsed it

This article brings you relevant knowledge about laravel, which mainly introduces some basic knowledge, including how to install Laravel, routing, validators, views, etc., the following is Let's take a look, hope it helps everyone.

Summarize and organize the basic knowledge of Laravel

[Related recommendations: laravel video tutorial]

1. Install laravle

1. Install composer

2. Execute the command:

##composer create-project laravel/laravel project folder name-- prefer-dist

Summarize and organize the basic knowledge of Laravel

2. Directory Introduction

  • app: The core code of the application

  • bootstrap: An app.php file that guides the framework, a cache directory (including routing and cache files), and the framework startup file. Generally, it does not move.

  • config: All configuration files

  • database: The migrations directory can generate data tables .

  • public: Entry file storage location, and static resources (similar to tp)

  • resources:

  • routes: All route definitions applied

  • tests: Available for Unit test

  • vendor: All composer dependency packages

3. First introduction to routing

1. Several common requests

  • 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,callback);

2. Match the specified request method

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

3. Configure any request method

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

4. Add must to the route Fill in the parameters

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

5. Add optional parameters to the route

Route::get('/home/{id?}', function ($id = '') {
    echo 'id为:'.$id;});
Copy after login

6. Pass the get parameter in the form of ?

Route::get('/home', function () {
    echo 'id为:'.$_GET['id'];});
Copy after login

7. Add an alias to the route

Route::any('/home/index', function () {
    echo '测试';})->name('hh');
Copy after login

8. Set routing group

For example, the following route:

  • /admin/login
  • /admin/index
  • /admin /logout
  • /admin/add

If adding them one by one is more troublesome, they have a common difference, they all have the /admin/ prefix, and you can set up a routing group Add the group:

Route::group(['prefix'=>'admin'], function () {
    Route::get('test1', function () {
        echo 'test1';
    });
    Route::get('test2', function () {
        echo 'test2';
    });});
Copy after login

You can now access it through /admin/test1.

9. Routing configuration controller

The controller can build a front desk and a back desk:

Summarize and organize the basic knowledge of Laravel

命令行创建路由:

php artisan make:controller Admin/IndexController
Copy after login

基本路由建立:

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

分目录路由建立:

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

四、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()]);}
Copy after login

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

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

    ],
Copy after login

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

Input::get('id')
Copy after login

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

Input::all()
Copy after login

打印出来的是数组

关于dd(dump+die)

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

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

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

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

5、判断某个值是否存在

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

六、视图的创建与使用

1、视图的创建

视图也可分目录管理:

Summarize and organize the basic knowledge of Laravel
控制器语法:

return view('home/test');
Copy after login

也可写为:

return view('home.test');
Copy after login

2、变量映射

控制器中:

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

视图中:

{{$day}}
Copy after login

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

  • 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]);
    }
Copy after login

视图中:

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

3.2 if的使用

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

4、视图之间的引用

@include('welcome')
Copy after login

七、模型的创建与使用

1、创建模型的命令

php artisan make:model Model/Admin/Member
Copy after login

此时,就会在app目录内创建:
Summarize and organize the basic knowledge of 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;];}
Copy after login

3、模型数据添加

方式一:

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

方式二:

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

4、模型的表连接

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

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;];}
Copy after login
<?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');
    }}
Copy after login
    //对象转数组
    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);
    }
Copy after login

Summarize and organize the basic knowledge of Laravel
Summarize and organize the basic knowledge of Laravel

八、日志

1、自定义日志目录

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

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

控制器中:

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

九、迁移文件

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

会在database\migrations下创建一个文件:
Summarize and organize the basic knowledge of 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');
    }}
Copy after login

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

写好SQL文件以后,执行:php artisan migrate
Summarize and organize the basic knowledge of Laravel
将会生成数据表,其中操作日志将记录在这个表中:

Summarize and organize the basic knowledge of Laravel
php artisan migrate:rollback:回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

【相关推荐:laravel视频教程

The above is the detailed content of Summarize and organize the basic knowledge of Laravel. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template