baoniu

356 经验值

 $data = [
      [
            'id'=>1,
            'status'=>1,
       ],
       [
            'id'=>2,
            'status'=>2,
       ],
 ]

collect($data)->??() 得到:

 $data = [
      [
            'id'=>1,
            'status'=>1,
            ‘status_text'='失败'
       ],
       [
            'id'=>2,
            'status'=>2,
            'status_text'=>'成功'
       ],
 ]

实际应用场景就是Eloquent模型取的数据就是集合,通常我们会对数据库中存放的状态进行翻译,如果转成数组来做,又会损失collect的方便之处

示例第三方包:jwt-auth , dingo api
它内部抛出的Exception 都是英文的,比如登录失败,token验证失败,都是英文的
我现在希望将它的英文进行本地化,但是没有找到方法。

因为我并没有找到jwt-auth / dingo api有提供语言包,也查看了它抛出异常的地方,发现也并没有使用trans函数
所以,我尝试建立Resource/lang/zh-CN.json 并在里面 英中文对应
但是这并没有生效

有解决过此类问题的朋友可以帮忙回答一下吗?

我这样弄了,暂时解决掉了,希望有更好的方法:

public function responseItem($item, TransformerAbstract $transformer, $status_code = 200, $message = null)
{
    return $this->response->item($item, $transformer, [], function ($resource, Manager $fractal) use ($status_code, $message) {
        $fractal->setSerializer(new CustomSerializer($status_code, $message));
    });
}

<?php
namespace App\Serializers;

use League\Fractal\Serializer\ArraySerializer;

class CustomSerializer extends ArraySerializer
{

private $status_code = 200;
private $message     = null;

public function __construct($status_code = 200, $message = null)
{
    $this->status_code = $status_code;
    $this->message     = $message;
}

public function collection($resourceKey, array $data)

{
    return [
        'data'        => $data,
        'status_code' => $this->status_code,
        'message'     => $this->message ? $this->message : '',
    ];
}

public function item($resourceKey, array $data)

{
    return [
        'data'        => $data,
        'status_code' => $this->status_code,
        'message'     => $this->message ? $this->message : '',
    ];
}

}

刚遇到这问题, 我也想知道~ 7个月还没有解决^^

问上laravel 5.4 的多表认证登录 和视频中的5.2版本一样吗?