bigperson/auto-base-buy

此包允许您通过车型访问基础汽车数据

1.0.2 2022-03-07 18:05 UTC

This package is auto-updated.

Last update: 2024-09-07 23:29:20 UTC


README

StyleCI

此包允许您方便地在项目中使用汽车数据库,实现搜索提示,将汽车绑定到您的模型等。

此包仅包含数据库结构的示例,实际的汽车数据库不包括在内,需要单独在网站 https://auto.basebuy.ru/ 购买。

目前此包 不支持 汽车特性以及 Basebuy.ru 数据库的 REST API。

内容

  • 安装
    • 导入数据库
  • 使用

安装

您可以使用 composer 安装此包。

composer require bigperson/auto-base-buy

导入汽车数据库

首先,需要在数据库中创建必要的表格,可以使用 artisan 命令从包中导入迁移文件。

 php artisan vendor:publish --tag=migrations --provider="Bigperson\AutoBaseBuy\AutoBaseBuyServiceProvider"

之后,应用迁移。

php artisan migrate

然后,导入种子文件。

 php artisan vendor:publish --tag=seeds --provider="Bigperson\AutoBaseBuy\AutoBaseBuyServiceProvider"

接下来,重新生成 autoload.php:使用命令 composer dump-autoload

在 database/csv/* 目录下会创建用于导入的 csv 文件。购买后,需要用原始文件替换这些文件,可以在 https://auto.basebuy.ru/ 购买。

接下来,应用种子文件。

php artisan db:seed --class=AutoBusyBuySeeder

使用

使用此包很简单。您可以在控制器中调用模型。

namespace App\Http\Controllers;

use Bigperson\AutoBaseBuy\Models\CarMark;

class Controller
{
    protected function show($id){

        $mark = CarMark::findOrFail($id);
        
    }
}

您可以将自己的模型与汽车通过品牌、型号、系列等关联起来,当然,您需要先确定关联类型并在模型中创建必要的表格或列。

namespace App;

use Bigperson\AutoBaseBuy\Models\CarModification;

class User extends Model
{
     public function car()
     {
         return $this->belongsTo(CarModification::class, 'id_car_modification');
     }
}

您还可以重写模型并扩展它们,例如添加访问器。

namespace App;

use Bigperson\AutoBaseBuy\Models\CarModification as BaseCarModification;

class CarModification extends BaseCarModification
{
    /**
     * Получить полное название автомобиля, включая марку, модель, годы выпуска, серию
     * @return string
     */
    public function getFullNameAttribute()
    {
        $string = $this->carModel->carMark->name;
        $string .= ' '.$this->carModel->name;
        $string .= ' '.$this->carSerie->name;
        $string .= ' '.$this->carSerie->carGeneration->name;
        $string .= ' ('.$this->carSerie->carGeneration->year_begin.'-'.$this->carSerie->carGeneration->year_end.')';
        $string .= ' '.$this->name;

        return $string;
    }
}

##许可证

此包(不包括数据库)是开源的,遵循 MIT 许可证