gerardojbaez / vehicle
Laravel 5.2 包,用于处理车辆数据。
Requires
- php: >=5.5.9
- illuminate/support: ~5.0
This package is auto-updated.
Last update: 2024-09-15 20:57:22 UTC
README
此包允许您在 Laravel 5.2 中处理车辆的制造商、型号、年份和其他详细信息。
数据来源何处?
原始列表是从 www.fueleconomy.gov 收集的。(他们提供 XML 和 CSV 文件)。列表已更新并验证,符合一些行业标准。
内容
安装
Composer
通过 Composer(文件 composer.json
)拉取此包
{ "require": { "php": ">=5.5.9", "laravel/framework": "5.2.*", "gerardojbaez/vehicle": "1.*" } }
在您的终端中运行此命令。
composer update
服务提供者
将包添加到您应用程序的服务提供者中,在 config/app.php 文件中。
<?php 'providers' => [ [...] /** * Third Party Service Providers... */ 'Gerardojbaez\Vehicle\VehicleServiceProvider', ]
配置文件、迁移和种子
使用以下命令发布包配置文件、迁移和种子
php artisan vendor:publish
然后运行迁移。
php artisan migrate
然后是车辆种子。
php artisan db:seed --class VehicleTablesSeeder
特质和契约
当您的模型之一具有制造商、型号、车型年份和/或车辆时,您可以使用特质添加所需的关联。
请参阅以下示例
<?php namespace App\Models; // [...] use Gerardojbaez\Vehicle\Contracts\HasMake as HasMakeContract; use Gerardojbaez\Vehicle\Contracts\HasModel as HasModelContract; use Gerardojbaez\Vehicle\Contracts\HasModelYear as HasModelYearContract; use Gerardojbaez\Vehicle\Contracts\HasVehicle as HasVehicleContract; use Gerardojbaez\Vehicle\Traits\HasMake; use Gerardojbaez\Vehicle\Traits\HasModel; use Gerardojbaez\Vehicle\Traits\HasModelYear; use Gerardojbaez\Vehicle\Traits\HasVehicle; class Vehicle extends Model implements HasMakeContract, HasModelContract, HasModelYearContract, HasVehicleContract { use HasMake, HasModel, HasModelYear, HasVehicle; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'make_id', 'model_id', 'year_id', 'vehicle_id', ... ];/** * Belongs to one model year. * * @return mixed */public function modelYear(){ // TODO: Implement modelYear() method. }
如果您不需要,则不需要使用所有特质。例如,如果只使用制造商,则可以只使用
HasMake
特质。
使用方法
CSV 文件
所有数据都存储在 CSV 文件中。这样做是为了便于管理。
文件结构
更新 CSV 文件
导出到所需的位置
php artisan vehicle:export "/path/to/exported/file.csv"
完成时,运行
php artisan vehicle:generate "/path/to/exported/file.csv"
php artisan db:seed --class VehicleTablesSeeder
vehicle:generate
命令将生成包含其自身数据的单个文件,用于与种子一起使用。如果您已经预先填充了数据库,请记得运行
migrate:refresh
!
模型
此包包含以下模型: Gerardojbaez\Vehicle\Models\VehicleMake
、Gerardojbaez\Vehicle\Models\VehicleModel
、Gerardojbaez\Vehicle\Models\VehicleModelYear
和 Gerardojbaez\Vehicle\Models\Vehicle
。
有关更多信息,请参阅每个模型。
控制器
您可能更希望从前端(例如通过 AJAX)检索制造商、型号和年份;我们为您创建了以下基本控制器:Gerardojbaez\Vehicle\Controllers\MakesController
、Gerardojbaez\Vehicle\Controllers\ModelsController
、Gerardojbaez\Vehicle\Controllers\ModelYearsController
、Gerardojbaez\Vehicle\Controllers\VehicleController
。您可以直接使用这些或用自己的扩展。
控制器返回包含(如果有)请求数据的 JSON 响应。
路由
这是一个示例。您可以按自己的意愿构建这些路由。
<?php // Show make list Route::get('api/vehicles/makes', [ 'uses' => 'Gerardojbaez\Vehicle\Controllers\MakesController@makes', 'as' => 'api.vehicles.makes' ]); // Show make models list Route::get('api/vehicles/{make}/models', [ 'uses' => 'Gerardojbaez\Vehicle\Controllers\ModelsController@models', 'as' => 'api.vehicles.models' ]); // Show model years list Route::get('api/vehicles/{make}/{model}/years', [ 'uses' => 'Gerardojbaez\Vehicle\Controllers\ModelYearsController@years', 'as' => 'api.vehicles.years' ]); // Show vehicles list Route::get('api/vehicles/{make}/{model}/{year}/vehicles', [ 'uses' => 'Gerardojbaez\Vehicle\Controllers\VehiclesController@vehicles', 'as' => 'api.vehicles.vehicles' ]); // Show vehicle details Route::get('api/vehicles/{vehicle}/vehicle', [ 'uses' => 'Gerardojbaez\Vehicle\Controllers\VehiclesController@vehicle', 'as' => 'api.vehicles.vehicle' ]);
许可证
此包是免费软件,根据 MIT 许可证条款分发。