模板截取字符串

  1. {{ str_limit($value->description, 20, '...') }}
  2. // 5.9 版本中废除了 str_limit 方法,使用 Str::limit
  3. {{ Str::limit($value->description, 20, '...') }}

分页

# 模板含参数输出
{{ $data->appends(Request()->all())->links() }}

8.x 版本使用 Bootstrap

https://learnku.com/docs/laravel/8.x/pagination/9402#29e843
8.x 之前默认使用 Bootstrap CSS 样式,8.x 默认使用 Tailwind 视图;使用 Bootstrap CSS 分页视图可以在 AppServiceProvider 中调用分页器的 useBootstrap 方法 :

// app/Providers/AppServiceProvider.php

use Illuminate\Pagination\Paginator;

public function boot()
{
    Paginator::useBootstrap();
}

创建公共函数文件

1,在 app 文件夹下创建 Helpers.php 文件;
2,在 composer.json 中的 autoload 下增加以下代码加载自动文件:

"files": [
    "app/Helpers.php"
]

常用知识 - 图1
3,执行命令自动加载:

composer dump-auto

常用知识 - 图2

数据查询,返回指定值

# 返回指定的字段值信息列表
DB::table('order')->where('status', 1)->pluck('id')->toArray();
# 打印结果:
array:3 [▼
  0 => 100
  1 => 101
  2 => 102
]

# 返回指定的单个字段值
DB::table('order')->where('id', 100)->pluck('id')->first();
# 打印结果:
100

拼接字符串查询

# 用户名查询
$users = DB::table('user')
        ->whereRaw("concat_ws(' ', firstname, lastname) like '%".$keyword."%'")
        ->orWhere(function($query) use ($keyword) {
            $query->whereRaw("concat(firstname, lastname) like '%".$keyword."%'");
         })
        ->get();

# 或使用以下方式
$keywrod = str_replace(' ', '|', $keyword); //多个空格异常,可优化
$users = DB::table('user')
        ->whereRaw("concat(firstname, lastname) REGEXP '".$keyword."'")
        ->get();

常用目录

app_path()

返回app目录的绝对路径。
还可使用app_path函数为相对于app目录的给定文件生成绝对路径:

$path = app_path('Http/Controllers/Controller.php');

base_path()

返回项目根目录的绝对路径。
还可使用base_path函数为相对于应用目录的给定文件生成绝对路径:

$path = base_path('vendor/bin');

config_path()

返回应用配置目录的绝对路径。

database_path()

返回应用数据库目录的绝对路径。

public_path()

返回public目录的绝对路径。

storage_path()

返回storage目录的绝对路径。
还可使用storage_path函数生成相对于storage目录的给定文件的绝对路径:

$path = storage_path('app/file.txt');

FIND_IN_SET

$coupon = DB::table('coupon')->whereRaw('FIND_IN_SET(' . $product->id . ', product_ids)')->get();

表单提交默认将空值转为null

在 app/Http/Kernel.php 中注释掉 ConvertEmptyStringsToNull 中间件:

protected $middleware = [
  \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
  \Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
  \App\Http\Middleware\TrimStrings::class,
  //\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
];