【laravel】laravel的基础学习笔记

这篇博客介绍了Laravel的基础学习,包括路由的原理和控制器的使用,如基本控制器、路由绑定和路由约束。此外,还详细讲解了如何在Laravel中创建和使用控制器,以及模型的操作,如查询、插入、更新和删除数据,强调了Eloquent ORM的便捷性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

好久没有写博客了,差点忘了这个坑,现在要做公司的项目,赶紧回来学习下laravel

路由

路由用白话讲就是把用户访问的地址,和你自己的控制器进行绑定,是用户能访问到你的控制器。

基本控制器
<?php

        Route::get('/', function () {
            return view('welcome');
        });

    ?>

这就是最基本的路由,当你访问应用根目录的时候,这个路由将把你引导到一个视图文件中,这种路由我们也可以叫视图路由。

路由绑定控制器
Route::get('/','Master\SiteController@index');
路由约束
//通过where()可以使用正则来约束,传递路由的数据
Route::get('user/{id}','Master\SiteController@user')
->where('id','[0-9]+');

如果想在路由里加入参数呢?

那我们先要引入控制器概念

控制器

首先建立控制器,必须要遵守laravel的约定,继承laravel的基类。

<?php

    namespace App\Http\Controllers;

    use App\User;
    use App\Http\Controllers\Controller;

    class UserController extends Controller
    {
        /**
         * 展示给定用户的信息。
         *
         * @param  int  $id
         * @return Response
         */
        public function show($name)
        {
           echo 'info-'.$name;
        }
    }

路由:

Route::get('info/{name}','Master\SiteController@show');

这样就将你的控制器与路由绑定在一起了,现在可以试试打开本地网址看看。

自定义函数定义与使用

我们可以使用自己定义的函数,参考这里

一旦加载自定义函数成功,那么就可以在任何控制器里加载函数了。

模型

laravel最强大的地方就是他们的ORM系统,Eloquent ORM,点击了解

首先我们创建一个模型,我们只用优雅的命令行就行。

php artisan make:model Site

在你的APP目录下面就会自动出现Site.php,这个php中已经帮你自动继Eloquent。接下来我们需要绑定表名,当然默认情况下,默认关联的表名是classname的复数形式,在这里就是sites,但是我们没有这个表,所以我们还是要指定表名的。

class Site extends Model
{
    //指定表名

    protected $table = 'user';

    //指定表主键
    protected $primaryKey = 'user_id';


}

如果你表的主键不是以id为命名的话,那么你也要指定主键的。

使用模型对象查询数据
/**
     * 数据查询
     */
    public function userList()
    {
        $list = Site::all();

        dd($list);
    }

dd()这个方法是laravel专门用来调试对象的,方法可以把对象的结构给打印出来。

如图:
这里写图片描述

插入数据

save()添加数据

        /**
         * 数据添加,用save()
         */
        public function userAdd()
        {
            $user = new Site();

            $user->user_name = 'wangyaxiong';

            $user->email = '177379557@qq.com';

            $user->phone = 17737281981;

            $user->save();
        }

create()添加数据

/**
     * 数据创建,用create()
     */
    public function userAddCreate()
    {
        $user = Site::create(['email'=>'9828193XX@qq.com','phone'=>1355445355X,'user_name'=>'morty']);

        //好用的打印对象结构的方法
        dd($user);
    }

注意save()create()的区别:

  1. 使用save()需要先new一个新的模型对象,create()不用。
  2. 使用create()需要先在你的模型上指定 fillable 或 guarded 的属性,因为所有的 Eloquent 模型在默认情况下都不能进行批量赋值。
/**
         * 可以被批量赋值的属性。
         *
         * @var array
         */
        protected $fillable = ['user_name'];

当然我们也可以用保护名单guarded()

//制定create的保护名单

    protected $guarded = ['is_admin'];
注意:用save()的时候,注意如果有create_at和update_at时,save会自动维护字段,如果想关闭使用:
// 关掉自动更新时间

    public $timestamps = false;
更新

save()

 /**
     * 数据更新,用save()
     */
    public function userUpdateSave()
    {
        $user = Site::find(2);

        $user->email = '90000100@qq.com';

        $user->is_admin = 1;

        $user->save();

    }

update()

/**
     * 数据更新,用update()
     */
    public function userUpdate()
    {
        Site::where('is_admin',1)
            ->where('user_name','zhujunwei')
            ->update(['phone'=>15926152932]);
    }

注意save()update()的区别:

  1. save()适用于单条数据的字段更新,update()适用于批量更新。
  2. update() saved 和 updated 的模型事件不会被更新的模型触发。这是因为执行批量更新时,不会有任何模型被检索出来。
删除

delete()

$flight = App\Flight::find(1);

$flight->delete();

destroy()

App\Flight::destroy(1);

App\Flight::destroy([1, 2, 3]);

App\Flight::destroy(1, 2, 3);
以上是这次学习的小笔记。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值