从laravel中获取PostgreSQL的nextval()?

时间:2016-05-16 20:05:45

标签: php postgresql laravel

我在Laravel中创建了一个使用向导的小瑕疵。我想知道如何获取某个表的nextval(),以便将其存储为会话。

目前,我从我的控制器那样做:

    public function index()
{
    // get all the reports
    $reports = Reports::all();
    $query = "select nextval('app_reports_mgmt.reports_rid_seq')";
    $next_rid = Reports::raw($query)->get();
    Session::put('next_rid', $next_rid);

    // load the view and pass the reports
    return View::make('templates.reports')
        ->with('reports', $reports);
}

但每次我打印出next_rid时,它实际上都将所有数据存储在表中。 这是一个很长的结果,但这里有一个输出片段:

[{" rid":4," name":"测试验证表测试","加密":" test"," internal_external":"外部","客户":"帐户1"," isdateappended" :"否"" savewithmacro":" XLSX"" deleteconnections":"真"" nameofemailbodysheet":" 1"" validationtables":" 5"" validationchecks":"&#34 ;, " customemailtext":" 3"" report_status":" WIP"" custom_email_subject":" 2& #34;" report_pc":" ccrep-EU-rbox02"" pc_user":"报告-EU"" custom_attachment_name" .......

我已经通过laracasts和几个网站浏览了一下,但似乎没有任何Laravel功能可以获得下一个表格。 在此先感谢。

1 个答案:

答案 0 :(得分:2)

您可以使用value()功能。

public function index()
{
    // get all the reports
    $reports = Reports::all();
    $query = "nextval('app_reports_mgmt.reports_rid_seq') as nxt";
    $next_rid = Reports::selectRaw($query)->value('nxt');
    Session::put('next_rid', $next_rid);

    // load the view and pass the reports
    return View::make('templates.reports')
        ->with('reports', $reports);
}