Maison > cadre php > Laravel > Résumer et organiser les connaissances de base de Laravel

Résumer et organiser les connaissances de base de Laravel

WBOY
Libérer: 2022-04-19 21:43:33
avant
3083 Les gens l'ont consulté

Cet article vous apporte des connaissances pertinentes sur laravel Il présente principalement quelques connaissances de base, notamment comment installer Laravel, le routage, les validateurs, les vues et d'autres contenus connexes. J'espère qu'il vous sera utile. vous. Tout le monde est utile.

Résumer et organiser les connaissances de base de Laravel

[Recommandations associées : tutoriel vidéo laravel]

1. Installez laravle

1. Installez composer

2. poser larav de création de projet el /nom du dossier du projet laravel--prefer-distInsérer la description de l'image ici

2. Introduction à l'annuairecomposer create-project laravel/laravel 项目文件夹名 --prefer-dist

Résumer et organiser les connaissances de base de Laravel

二、目录简介

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

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

  • config:所有配置文件

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

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

  • resources

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

  • tests:可用来单元测试

  • vendor

    • app : Le code principal de l'application🎜
    • 🎜bootstrap  : Un fichier app.php qui guide le framework, un répertoire de cache (incluant les fichiers de routage et de cache), et le fichier de démarrage du framework. Généralement, il ne bouge pas. 🎜
    • 🎜config : Tous les fichiers de configuration 🎜
    • 🎜database : Le répertoire migrations peut générer des tables de données. 🎜
    • 🎜public : emplacement de stockage du fichier d'entrée et ressources statiques (similaires à tp) 🎜
    • 🎜ressources : 🎜
    • 🎜routes : Toutes les définitions de routes de l'application🎜
    • 🎜tests : Peut être utilisé pour les tests unitaires🎜 li>🎜fournisseur : tous les packages de dépendances du compositeur🎜

    3. Première introduction au routage

    1. Plusieurs requêtes courantes

    • Route::get( ​ ​​ ​​                   toi                                     r                                     je                                     , ,                   ​​ ​​  url,  ​​ url,rappel;
    • Route::post( ​ ​​ ​​                   toi                                     r                                     je                                     , ,                   ​​ ​​  url,  ​​ url,callback);
    • Route::put( ​ ​​ ​​                   toi                                     r                                     je                                     , ,                   ​​ ​​  url,  ​​ url,callback);
    • Route::delete( ​ ​​ ​​                   toi                                     r                                     je                                     , ,                   ​​ ​​  url,  ​​ url,callback);

    2. Faites correspondre la méthode de demande spécifiée

    Route::match(['get','post'],'/',function(){});
    Copier après la connexion

    3.

    4. Fournir le routage Ajoutez les paramètres requis

    Route::any('/home', function () {
        });
    Copier après la connexion

    5. Ajoutez des paramètres facultatifs à la route

    Route::get('/home/{id}', function ($id) {
        echo 'id为:'.$id;});
    Copier après la connexion

    6. Passez le paramètre get sous la forme :

    /admin/login

    /admin/index

    /admin/logout

      . /admin/add
    • Si les ajouter un par un est plus gênant, ils ont une différence commune, ils ont tous le préfixe /admin /, vous pouvez configurer un groupe de routage pour ajouter :
    Route::get('/home/{id?}', function ($id = '') {
        echo 'id为:'.$id;});
    Copier après la connexion
  • Vous pouvez maintenant y accéder via /admin/test1.
  • 9. Contrôleur de configuration de routage
Le contrôleur peut construire un front desk et un back desk :

Résumer et organiser les connaissances de base de Laravel

命令行创建路由:

php artisan make:controller Admin/IndexController
Copier après la connexion

基本路由建立:

Route::get('test/index','TestController@index');
Copier après la connexion

分目录路由建立:

Route::get('/admin/index/index','Admin\IndexController@index');
Copier après la connexion

四、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()]);}
Copier après la connexion

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

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

    ],
Copier après la connexion

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

Input::get('id')
Copier après la connexion

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

Input::all()
Copier après la connexion

打印出来的是数组

关于dd(dump+die)

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

Input::only(['id','name']  //只接收id,其余不接受
Copier après la connexion

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

Input::except(['name']    //不接收name,其余都接收
Copier après la connexion

5、判断某个值是否存在

Input::has('name')    //存在返回true  不存在返回false  其中0返回true
Copier après la connexion

六、视图的创建与使用

1、视图的创建

视图也可分目录管理:

Résumer et organiser les connaissances de base de Laravel
控制器语法:

return view('home/test');
Copier après la connexion

也可写为:

return view('home.test');
Copier après la connexion

2、变量映射

控制器中:

return view('home/test',['day'=>time()]);
Copier après la connexion

视图中:

{{$day}}
Copier après la connexion

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

  • 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]);
    }
Copier après la connexion

视图中:

@foreach($data as $k=>$v)
    键:{{$k}}
    值:{{$v['name']}}    <br>@endforeach
Copier après la connexion

3.2 if的使用

@if(1==2)
    是的
@else
    不是的
@endif
Copier après la connexion

4、视图之间的引用

@include('welcome')
Copier après la connexion

七、模型的创建与使用

1、创建模型的命令

php artisan make:model Model/Admin/Member
Copier après la connexion

此时,就会在app目录内创建:
Résumer et organiser les connaissances de base de 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;];}
Copier après la connexion

3、模型数据添加

方式一:

	 $model = new Member();
	 $model->sname = '勒布朗';
	 $res = $model->save();
	 dd($res);
Copier après la connexion

方式二:

     $model = new Member();
     $res = $model->create($request->all());
     dd($res);
Copier après la connexion

4、模型的表连接

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

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;];}
Copier après la connexion
<?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');
    }}
Copier après la connexion
    //对象转数组
    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);
    }
Copier après la connexion

Résumer et organiser les connaissances de base de Laravel
Résumer et organiser les connaissances de base de Laravel

八、日志

1、自定义日志目录

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

 'custom' => [
     'driver' => 'single',
     'path' => storage_path('logs/1laravel.log'),
     'level' => 'debug',
 ]
Copier après la connexion

控制器中:

$message = ['joytom','rocker'];Log::channel('custom')->info($message);
Copier après la connexion

九、迁移文件

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

会在database\migrations下创建一个文件:
Résumer et organiser les connaissances de base de 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');
    }}
Copier après la connexion

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

写好SQL文件以后,执行:php artisan migrate
Résumer et organiser les connaissances de base de Laravel
将会生成数据表,其中操作日志将记录在这个表中:

Résumer et organiser les connaissances de base de Laravel
php artisan migrate:rollback:回滚最后一次的迁移操作, 删除(回滚)之后会删除迁移记录,并且数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

【相关推荐:laravel视频教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal