我检查代码和教程一样的,但是就没有数据显示
微信里点“发现”,扫一下
二维码便可将本文分享至朋友圈。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Lesson; use App\Http\Requests; use App\Http\Controllers\Controller; class LessonsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { // all() is bad // 没有提示信息(Yes) // 直接展示我们的数据结构 // 没有错误信息 $lessons = Lesson::all(); // return $lessons; // exit; return \Response::json([ 'status' => 'success', 'status_code' => 200, 'data' => $this->transform($lessons) //'data' => $lessons->toArray() ]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $lesson = Lesson::findOrFail($id); return \Response::json([ 'status' => 'success', 'status_code' => 200, 'data' => $lesson ]); } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } private function transform($lessons) { return array_map(function($lesson){ return [ 'title' => $lesson['title'], 'content' => $lesson['body'], 'is_free' => $lesson['free'] ]; },$lessons->toArray); } }
index 方法可以触发到的么?
@JellyBool 可以的,index方法里面注释掉的代码是可以显示json数据的,
这个是 laravel api教程的视频
你先打印一下你的lesson,看能不能从数据库取值,如果不可以,那么就是数据库连接问题了,我猜测是这里有问题了。
@Peter_Yuan_辉
没有进行字段映射的时候,我60条测试数据和单独的 /id 一条数据都可以正常读取数据和显示JSON数据
http://book.app/api/v1/lessons
没有进行字段映射前 这个api可以获得60条测试数据
进行字段映射以后,什么数据都没有了
代码我校对几次都没有发现错误
害怕是一个很低级的错误
$lessons->toArray()
这个是视频教程的代码 @Peter_Yuan_辉
@JellyBool 谢谢 确实是这个问题,我在后面加上 () 以后完美解决
但是我不知道为什么视频里面的可以没有 () 也出数据
版本问题吧。。。你用的 laravel 5.2 ?
@JellyBool 做特特意从新安装的 5.1.1版本
5.1.40 @JellyBool