Atasi Error "Call to a member function format() on a non-object" Pada Laravel 5


Atasi  Error "Call to a member function format() on a non-object" Pada Laravel 5

Format Tanggal atau dalam bahasa pemrograman php adalah Format Date, dalam hal ini data yang akan digunakan adalah data dari database dengan format timesstamp, yang biasanya dalam Laravel ada colom created_at dan colom updatd_at.

Pada kasus ini yang dibahas adalah bagaimana cara mengambil nilai tertentu dari data timestamp, tetapi dalam kasus yang saya alami sedikit berbeda sehingga saya menggunakan 2(dua) cara untuk membuat format tanggal, mari kita sama-sama belajar membuat format tersebut, silahkan perhatikan perhatikan contoh sintak dibawah ini :

Eloquent

Menurut pentunjuk pada eloquent pengaturan format tanggal dan jam adalah sebagai berikut :
contoh query pada table post yang tentunya sudah berisi data dan kita akan mengambil data dari field 
create_at :
$post = Posts::where(['slug'=>$slug,'post_status'=>1])->first();

Dan untuk mengurai format tanggal dan waktu kita dapat menggunakan {{ $post->created_at->format('d M Y') }} untuk format tanggal, sedangkan {{ $post->created_at->format('h:i a') }} untuk mengurai format jam dari data timestamp, tetapi jika menggunakan sintak database query sepeti di bawah ini hasilnya akan muncul galat error, contoh :

Database Query

$tagid=DB::table('tag_relations')->where('tag_relations.post_id', $post->id)->pluck('tag_id');
$relatedposts=DB::table('posts')->join('tag_relations','posts.id','=','tag_relations.post_id')->select('posts.*')->whereIn('tag_relations.tag_id', $tagid)->distinct()->orderBy('post_title','asc')->get();
apabila menggunakan {{ $post->created_at->format('d M Y') }} dan {{ $post->created_at->format('h:i a') }} terjadi error dengan informasi sebagai berikut "Call to a member function format() on a non-object".

Dengan adanya galat error seperti di atas, lalu saya mengabil inisiatif untuk mengakali error ini dengan cara mengadopsi sintak PHP date() dan strtotime() , dan dapat diimplementasikan pada laravel sebagai berikut:

{{date('d M Y', strtotime($rpost->created_at))}}
{{date('h:i a', strtotime($rpost->created_at))}}

maka hasil outputnya adalah 21 Jun 2016 dan 11:30 am.

Dari ulasan dan hasil analisa kecil atas penyebab terjadinya error, dikarenakan output yang dikeluarkan oleh database query sudah berupa string oleh karena itu perlu merubah dari string ke dalam bentuk tanggal menggunakan date() dan strtotime().

Demikian arikel singkat atas pengalaman dalam menentukan format tanggal dan jam, semoga bermanfaat.

Subscribe to receive free email updates:

0 Response to "Atasi Error "Call to a member function format() on a non-object" Pada Laravel 5"

Posting Komentar