Laravel 5.1无法识别postgres中的时间戳字段

时间:2015-07-20 01:37:55

标签: php postgresql laravel-5

我正在使用Laravel 5.1。但我无法查询数据库:

我只是这样做:User :: all();在我的UserController上

这是错误:

1/1
InvalidArgumentException in Carbon.php line 414:
Trailing data
in Carbon.php line 414
at Carbon::createFromFormat('Y-m-d H:i:s', '2015-07-19 20:32:47.313') in Model.php line 2858
at Model->asDateTime('2015-07-19 20:32:47.313') in Model.php line 2384
at Model->attributesToArray() in Model.php line 2361
at Model->toArray() in Collection.php line 871
at Collection->Illuminate\Support\{closure}(object(User))
at array_map(object(Closure), array(object(User), object(User), object(User))) in Collection.php line 873
at Collection->toArray() in Collection.php line 894
at Collection->toJson() in Response.php line 66
at Response->morphToJson(object(Collection)) in Response.php line 44
at Response->setContent(object(Collection)) in Response.php line 202
at Response->__construct(object(Collection)) in Router.php line 1225
at Router->prepareResponse(object(Request), object(Collection)) in ControllerDispatcher.php line 113
at ControllerDispatcher->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in ControllerDispatcher.php line 114
at ControllerDispatcher->callWithinStack(object(UserController), object(Route), object(Request), 'index') in ControllerDispatcher.php line 69
at ControllerDispatcher->dispatch(object(Route), object(Request), 'App\Http\Controllers\UserController', 'index') in Route.php line 201
at Route->runWithCustomDispatcher(object(Request)) in Route.php line 134
at Route->run(object(Request)) in Router.php line 704
at Router->Illuminate\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Router.php line 706
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 671
at Router->dispatchToRoute(object(Request)) in Router.php line 631
at Router->dispatch(object(Request)) in Kernel.php line 229
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 139
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in VerifyCsrfToken.php line 50
at VerifyCsrfToken->handle(object(Request), object(Closure))
at call_user_func_array(array(object(VerifyCsrfToken), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in ShareErrorsFromSession.php line 54
at ShareErrorsFromSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(ShareErrorsFromSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in StartSession.php line 62
at StartSession->handle(object(Request), object(Closure))
at call_user_func_array(array(object(StartSession), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure))
at call_user_func_array(array(object(AddQueuedCookiesToResponse), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure))
at call_user_func_array(array(object(EncryptCookies), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in CheckForMaintenanceMode.php line 42
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CheckForMaintenanceMode), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 124
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 103
at Pipeline->then(object(Closure)) in Kernel.php line 118
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 86
at Kernel->handle(object(Request)) in index.php line 54

这是我的用户模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    //
}

这是我的UserController

<?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;

class UserController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return Response
     */
    public function index()
    {
        $users = User::all();
        // return view('users.index', compact('users'));
        return $users;
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  Request  $request
     * @return Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  Request  $request
     * @param  int  $id
     * @return Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return Response
     */
    public function destroy($id)
    {
        //
    }
}

这是我的postgres SQL代码

DROP TABLE IF EXISTS users CASCADE;

CREATE TABLE users
(
   id              serial         NOT NULL,
   code            varchar(255),
   login           varchar(50)     NOT NULL,
   name            varchar(255)    NOT NULL,
   email           varchar(255)    NOT NULL,
   password        varchar(60)     NOT NULL,
   remember_token  varchar(100),
   created_at      timestamp       NOT NULL,
   updated_at      timestamp       NOT NULL
);

-- Column id is associated with sequence public.users_id_seq

ALTER TABLE users
   ADD CONSTRAINT users_pkey
   PRIMARY KEY (id);

COMMIT;

出了什么问题?请帮忙。 有没有我错过的配置文件?

2 个答案:

答案 0 :(得分:4)

阅读此itertools.chain.from_iterable后,我决定创建扩展默认模型类的模型,并用自定义代码替换getDateFormat。 因为改变供应商目录中的类是个坏主意。

我希望它有所帮助:

class FixedModel extends Illuminate\Database\Eloquent\Model {
    public function getDateFormat()
    {
        return 'Y-m-d H:i:s.u';
    }
}

class User extends FixedModel {}

答案 1 :(得分:2)

您应该在模型类中声明$dateFormat

protected $dateFormat = 'Y-m-d H:i:s.u';