【问题标题】:Laravel : String type always returning 2147483647Laravel:字符串类型总是返回 2147483647
【发布时间】:2018-12-24 18:57:52
【问题描述】:

当我通过 api 检索数据时,我得到 2147483647,尽管我已经以字符串列类型创建了该列。在表中它成功存储了 989547****。

迁移:

$table->string('source_number',10)->unique();

控制器:

public function getSourceNumberSmsTemplate(Request $request){
    $detail=$request->all();

    if(empty($detail['source_number']) || !array_key_exists('source_number',$detail)){
        return Response::json([
        'message' => "Missing Parameters. Please recheck submitted data"], 422);
    }

    $template= smstemplate::find($detail['source_number']);
    return Response::json([
        $detail['source_number']=>$template], 200);
    }

API 结果:

{
    "id": 1,
    "user_id": 1,
    "source_number": 2147483647,
 }

【问题讨论】:

  • 请发布这个完整的函数 $template= smstemplate::find($detail['source_number']);返回响应::json([ $detail['source_number']=>$template], 200);
  • 请显示完整的代码。您的 API 结果与您从控制器发送的内容不匹配。该方法返回一个以 source_number 为键、以模板为值的数组,其中您的 API 结果是一个对象,具有 id、user_id 和 source_number。
  • 试试这个 smstemplate::where('source_number' ,$detail['source_number']);
  • 仍然得到相同的结果。
  • 试试这个:使用 Illuminate\Support\Facades\DB; DB::table('sms_templates')->where('source_number', '=' , $request->source_number)->get();

标签: laravel api eloquent


【解决方案1】:

尝试查询生成器:

use Illuminate\Support\Facades\DB;

$template = DB::table('sms_templates')
->where('source_number', '=' , $request->source_number)
->get();

【讨论】:

    【解决方案2】:

    尝试将其转换为模型中的 bigint 或字符串,默认为整数'

    //如下所示

    protected $keyType = 'bigint';
    

    【讨论】:

      猜你喜欢
      • 2021-01-17
      • 1970-01-01
      • 2013-03-10
      • 2016-12-16
      • 2019-07-25
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多