laravel 使用小功能总结

模型

protected $table = 'goods'; //定义表明
protected $guarded = [];  //黑名单  定义拒绝操作的字段
protected $fillable = [];  //白名单
public $timestamps = false;  //是否自动更新时间戳字段
protected $connection = 'mysql_branch'; //定义链接的数据库

链接其他数据库时

DB::connection(‘mysql_branch’)->table(‘table’)->get() 

获取插入的id

User::insertGetId([]);

配置其他数据库时:

//config/database.php下粘贴一个配置类型,例如位置一个mysql_old;
'mysql_old' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('Old_DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => 'InnoDB',
        ],

模板

//模板中解析html 标签
{!!       !!}

验证

use App\Http\Requests\KillRequest;
public  index(KillRequest $request){

}
//在KillRequest验证中写验证规则,
class KillRequest extends BaseFormRequest
{

    public function rules()
    {

        return [
            'coverimage' => 'required',
            'goodstitle' => 'required',
        ];

    }

    //定义出错后的message信息:
    public function messages()
    {
        return [
            'coverimage.required' => '主封面必填',
            'goodstitle.required' => '商品标题必填',
         
        ];
    }
}

辅助函数

 str_limit($value, $limit = 25, $end = '...'); //截取固定固定长度的字符串,剩余的用...代替

分页 参照 https://laravelacademy.org/post/6160.html

$results->total() 
$results->count()

子查询

      $goodsQuery = DB::table('goods')
            ->leftjoin('goods_shop', 'goods.id', '=', 'goods_shop.gid')
            ->leftjoin('goods_sales', 'goods.id', '=', 'goods_sales.gid')
            ->leftjoin('goods_coupon', 'goods.id', '=', 'goods_coupon.gid')
            ->leftjoin('users', 'goods.userid', '=', 'users.id')
            ->select('users.name as username',
                'goods.id', 'goods.goodslink', 'goods.goodstitle', 'goods.coverimage', 'goods.commissiontype', 'goods.commissionrate', 'goods.copywriting', 'goods.copywritingimage', 'goods.origprice', 'goods.voucherprice', 'goods.created_at', 'goods.goodstype',
                'goods_coupon.couponlink', 'goods_coupon.coupontotal', 'goods_coupon.couponremain', 'goods_coupon.couponmoney', 'goods_coupon.reduceprice',
                'goods_sales.monthsales', 'goods_sales.increment', 'goods_sales.onehoursales', 'goods_sales.twohoursales', 'goods_sales.todaysales',
                'goods_shop.shoptype', 'goods_shop.shopname', 'goods_shop.activitytype')
            ->orderBy('id', 'desc')
            ->limit(100);  //获取前100条数据
        $data = DB::table(DB::raw("({$goodsQuery->toSql()}) as goodsQuery"))
            ->orderBy('id', 'desc')
            ->paginate(env('LIMIT'));//从中拿去10条

模型中进行多条件不确定条件查询

        $query = User::select('phone');
        $a=request('phone');
        isset($a) && !empty($a) && $query->where('phone', $a);
        $b=request('name');
        isset($b) && !empty($b) && $query->where('name', $b);
        $data= $query->paginate(20)

laravel优雅的上传图片

 public function update(UserRequest $request, ImageUploadHandler $uploader, User $user)
    {
        if ($request->avatar) {
            $result = $uploader->save($request->avatar, 'avatars', $user->id);
            if ($result) {
                $data['avatar'] = $result['path'];
            }
        }
        $user->update($request->all());
        return redirect()->route('users.show', $user->id)->with('success', '个人资料更新成功!');
    }

ImageUploadHandler 类内容

namespace App\Handlers;
class ImageUploadHandler
{
    // 只允许以下后缀名的图片文件上传
    protected $allowed_ext = ["png", "jpg", "gif", 'jpeg'];

    public function save($file, $folder, $file_prefix)
    {
        // 构建存储的文件夹规则,值如:uploads/images/avatars/201709/21/
        // 文件夹切割能让查找效率更高。
        $folder_name = "uploads/images/$folder/" . date("Ym/d", time());
        // 文件具体存储的物理路径,`public_path()` 获取的是 `public` 文件夹的物理路径。
        // 值如:/home/vagrant/Code/larabbs/public/uploads/images/avatars/201709/21/
        $upload_path = public_path() . '/' . $folder_name;

        // 获取文件的后缀名,因图片从剪贴板里黏贴时后缀名为空,所以此处确保后缀一直存在
        $extension = strtolower($file->getClientOriginalExtension()) ?: 'png';

        // 拼接文件名,加前缀是为了增加辨析度,前缀可以是相关数据模型的 ID
        // 值如:1_1493521050_7BVc9v9ujP.png
        $filename = $file_prefix . '_' . time() . '_' . str_random(10) . '.' . $extension;

        // 如果上传的不是图片将终止操作
        if (!in_array($extension, $this->allowed_ext)) {
            return false;
        }
        // 将图片移动到我们的目标存储路径中
        $file->move($upload_path, $filename);

        return [
            'path' => config('app.url') . "/$folder_name/$filename"
        ];
    }
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel 是一款基于 PHP 语言的开源 Web 应用框架,它采用了 MVC(Model-View-Controller)的软件设计模式,具有高效、简洁、优雅、可扩展等特点,被广泛应用于 Web 应用开发领域。在学习 Laravel 框架的过程中,可以进行一些实验来深入了解 Laravel 的特点和使用方法。 下面总结一些常见的 Laravel 实验: 1. 新建 Laravel 项目:在命令行中进入目标文件夹,输入 `composer create-project laravel/laravel` 命令即可新建 Laravel 项目。 2. 数据库迁移:Laravel 提供了数据库迁移功能,可以简化数据库表的创建和修改。在命令行中输入 `php artisan make:migration create_users_table` 命令即可创建一个名为 create_users_table 的迁移文件,修改该文件可以定义用户表的结构,然后运行 `php artisan migrate` 命令即可将表结构同步到数据库中。 3. 路由设置:Laravel 的路由设置非常简便,可以通过在 `routes/web.php` 文件中添加路由来定义 URL 和对应的控制器方法。例如,可以通过以下代码来定义一个 `/home` 的路由: ``` Route::get('/home', 'HomeController@index'); ``` 4. 控制器设置:Laravel 的控制器可以通过命令行快速创建,例如,可以通过 `php artisan make:controller HomeController` 命令来创建一个名为 HomeController 的控制器。然后,在该控制器中定义一个 `index` 方法,即可在路由中调用该方法。 5. 视图设置:Laravel 的视图文件存放在 `resources/views` 目录下,可以通过在控制器方法中返回视图文件名的方式来渲染视图。例如,可以在 HomeController 中添加以下代码: ``` public function index() { return view('home'); } ``` 6. 表单验证:Laravel 提供了表单验证功能,可以在控制器方法中通过 `validate` 方法对表单数据进行验证。例如,可以在 HomeController 中添加以下代码: ``` public function store(Request $request) { $validatedData = $request->validate([ 'name' => 'required|max:255', 'email' => 'required|email|unique:users', 'password' => 'required|confirmed|min:6', ]); } ``` 以上就是一些常见的 Laravel 实验总结,通过这些实验可以更深入地了解 Laravel 的特点和使用方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值