gerardojbaez/vehicle

该包最新版本(v1.0.0)没有提供许可证信息。

Laravel 5.2 包,用于处理车辆数据。

v1.0.0 2016-07-09 02:15 UTC

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\VehicleMakeGerardojbaez\Vehicle\Models\VehicleModelGerardojbaez\Vehicle\Models\VehicleModelYearGerardojbaez\Vehicle\Models\Vehicle

有关更多信息,请参阅每个模型。

控制器

您可能更希望从前端(例如通过 AJAX)检索制造商、型号和年份;我们为您创建了以下基本控制器:Gerardojbaez\Vehicle\Controllers\MakesControllerGerardojbaez\Vehicle\Controllers\ModelsControllerGerardojbaez\Vehicle\Controllers\ModelYearsControllerGerardojbaez\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 许可证条款分发。