🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
一、创建项目 ``` composer create-project --prefer-dist laravel/laravel weidian ``` 二、路由前缀 weidian/app/Providers/RouteServiceProvider.php ~~~ /** * Define the "api" routes for the application. * * These routes are typically stateless. * * @return void */ protected function mapApiRoutes() { Route::prefix('api') //路由前缀 ->middleware('api') //中间件 ->namespace($this->namespace) ->group(base_path('routes/api.php')); } ~~~ 缺省的路由前缀为api 三、api路由定义 资源控制器的方法: ![](https://box.kancloud.cn/1798086015a71fe1a601fba3601508dc_551x236.png) 测试的api weidian/routes/api.php ~~~ Route::get('index',function(){ return 'hello api'; }); ~~~ 添加测试的api路由 **推荐用postman进行测试,不要用浏览器来做了** ![](https://box.kancloud.cn/295f83360128ede12dd797fd79613bf2_358x294.png) 访问地址`index.php/api/index`进行访问,图上我进行的index.php隐藏,请自行百度或者看我laravel相关技巧里查找。 四、创建数据表 1. 首先根目录下.env里修改 ~~~ DB_CONNECTION=mysql DB_HOST=你的数据库地址 DB_PORT=3306 DB_DATABASE=你的数据库 DB_USERNAME=你的用户名 DB_PASSWORD=你的密码 ~~~ 2. 数据迁移 phpstorm中的Terminal里,进入到项目目录下,执行下面命令 ``` php artisan migrate ``` ![](https://box.kancloud.cn/f674f6a2ad46017efd23fa34171bf785_703x196.png) 进入到数据库可以看到刚才新添加的表 ![](https://box.kancloud.cn/164d9f2ff807eee567bdd6e063dc017b_129x66.png) 我们主要用到的是users的表 五、创建资源控制器 我们要操作这样一个数据表的时候,需要创建一个控制器,我们直接创建到`weidian/app/Http/Controllers/Api`下并添加api的版本V1目录 我们可以在Terminal里 ``` php artisan make:controller Api/V1/UserController --resource ``` weidian/app/Http/Controllers/Api/V1/UserController.php V1目录下会创建UserController.php 创建资源控制器路由 weidian/routes/api.php 添加 ~~~ Route::resource('user','Api\V1\UserController'); ~~~ `weidian/app/Http/Controllers/Api/V1/UserController.php`文件里添加如下显示结果 ~~~ public function index() { return '获取所有资源'; } ~~~ postman访问地址`index.php/api/user` ![](https://box.kancloud.cn/f5c97d2bd0785e45b8cb95ab70054dbd_355x291.png) 由于有版本管理的时候,可以添加路由分组 ~~~ Route::group(['prefix'=>'v1','namespace'=>'Api\V1'],function (){ Route::resource('user','UserController'); }); ~~~ postman访问地址`index.php/api/v1/user` 六、Tinker命令的使用:数据交互命令台 通过Tiniker命令生成数据 1. 首先通过命令控制台进入tinker ``` php artisan tinker ``` ![](https://box.kancloud.cn/b916f3dd209bda85aa82205c354c65f4_464x88.png) 2. 创建数据 控制台输入如下,创建15条数据 ``` factory(App\User::class, 15)->create(); ``` ![](https://box.kancloud.cn/b44dbd5c44860c21bef0d35b4d2ad1fd_884x367.png) ![](https://box.kancloud.cn/535efa44c4fb7b3485b9220bffe92bca_1069x357.png) 对应的代码可以看下 weidian/database/factories/UserFactory.php ~~~ $factory->define(App\User::class, function (Faker $faker) { return [ 'name' => $faker->name, 'email' => $faker->unique()->safeEmail, 'email_verified_at' => now(), 'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret 'remember_token' => str_random(10), ]; }); ~~~ 七、模型用户资源处理 针对于使用UserController这个资源控制器操作User表中的资源 weidian/app/Http/Controllers/Api/V1/UserController.php ~~~ <?php namespace App\Http\Controllers\Api\V1; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\User; class UserController extends Controller { public function index() { return User::all(); } public function show($id) { return User::find($id); } } ~~~