4

最近、私が持っているモデレーション キューにいくつかの機能を追加していました。Questionnaire という 1 つのテーブルにクエリを実行する代わりに、Users にクエリを実行して、ユーザー名を取得できるようにしました。

私の以前のクエリはちょうど

$questionnaire = Questionnaire::all();

そして、ページでこれにアクセスすると、次のようにフォーマットできます。

{{ $questionnaire->created_at->format('F d, Y h:ia') }}

これは、新しいクエリがコントローラーでどのように見えるかです。

public function moderate()
    {
        $questionnaires = DB::table('users')
                        ->join('questionnaire', 'users.id', '=', 'questionnaire.memberid')
                        ->select('users.username', 'questionnaire.*')
                        ->get();
        return view('questionnaire.moderate', ['questionnaires' => $questionnaires]);
    }

ただしcreated_at、ページの日付にアクセスしようとすると、Call to a member function format() on a non-objectエラーが発生します。掘り下げた結果、これは日付が炭素インスタンスに変換されていないためだと思います。

ただし、Carbon に関するすべてのドキュメントは、日付を取得するだけで、クエリ結果を取得した後、ページ上で引き続きアクセスできるように変換する方法を理解するのに苦労しています。

誰でも助けることができますか?

4

2 に答える 2

4

Carbon APIによると、次のように Carbon インスタンスを作成できます。

$myDate = new Carbon($questionnaire->created_at);

そして、あなたが望むようにフォーマットしてください:

{{ $myDate->format('F d, Y h:ia') }}

それはまさにあなたが望むものではないかもしれませんが、うまくいきます。

PS: アンケート モデルの $dates 属性内に created_at フィールドがありますか? 今のやり方でデータにアクセスしても、それで十分だと思いました。

于 2015-08-16T04:48:16.487 に答える