Bug?Laravel 5.5 使用 API Resources 处理 Notifications 时的小疑问
- Laravel Version: 5.5
- PHP Version: PHP 7.1.7 (cli) (built: Jul 15 2017 18:08:09) ( NTS )
- Database Driver & Version: SQLite version 3.19.3 2017-06-27 16:48:08
- OS: macOS High Sierra 10.13.2
Description:
对Notifications使用 API Resources 时,发现了一个问题:
Model:
namespace App;
use Illuminate\Database\Eloquent\Model;
class Notification extends Model
{
protected $table = 'notifications';
}
Resource:
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\ResourceCollection;
class SystemNotificationCollection extends ResourceCollection
{
public function toArray($request)
{
return [
'data' => $this->collection,
'links' => [
'self' => 'link-value',
],
];
}
}
Controller:
public function index(Request $request)
{
return new SystemNotificationCollection( Notification::where('type', SystemNotification::class)->paginate());
}
Database:
Result:
Transform:
e58f93d1-1c44-4271-8381-0f927b7bdda4 -> 0
20d91d78-0075-4e6e-b7db-ec8fabe1e130 -> 20
所以转换过程类似于 : (int)id
?
我在 Model中添加如下代码:
public function getIdAttribute($value)
{
return $this->attributes['id'];
}
问题得以解决:
所以,这是一个Bug么?
推荐文章: