Jadi dalam proyek ini saya memiliki beranda yang hanya menampilkan posting yang dibuat hari itu. Dan sekarang saya membutuhkan penjumlahan harga saya untuk hari itu dan untuk itu saya menambahkan ini ke kode penjumlahan harga saya

Di home.blade.php saya untuk menjumlahkan harga :

<tfoot>
<tr>
    <th>UKUPAN IZNOS:&nbsp;&nbsp;{{ Auth::user()->posts->whereDate('created_at','=',$date)->sum('cijena') }}&euro;</th>
    <th>KARTICA:&nbsp;&nbsp;{{ Auth::user()->posts->where('placanje', 'Kartica')->whereDate('created_at','=',$date)->sum('cijena')}}&euro;</th>
    <th>GOTOVINA:&nbsp;&nbsp;{{ Auth::user()->posts->where('placanje', 'Gotovina')->whereDate('created_at','=',$date)->sum('cijena')}}&euro;</th>
    <th>VIRMAN:&nbsp;&nbsp;{{ Auth::user()->posts->where('placanje', 'Virman')->whereDate('created_at','=',$date)->sum('cijena')}}&euro;</th>
    <th>NK:&nbsp;&nbsp;{{ Auth::user()->posts->where('placanje', 'NK')->whereDate('created_at','=',$date)->sum('cijena')}}&euro;</th>
</tr>
</tfoot>

Dan metode whereDate ini dari HomeController saya dan ini dia:

public function index()
{
    $date = new Carbon(request('date'));

    $posts = Post::where('user_id', Auth::id())
            ->whereDate('created_at','=',$date)
            ->orderBy('created_at', 'DESC')
            ->paginate(30); //add {{ $posts->links() }} if paginate is enabled
    return view('home', compact('date', $date))->with('posts', $posts);
}

Dan rute saya di web.php adalah:

Route::get('/home', 'HomeController@index')->name('home');

Dan semua itu mengembalikan saya adalah metode whereDate tidak ada. Ada ide bagaimana cara memperbaikinya?

1
Milos 6 Agustus 2019, 23:08

1 menjawab

Jawaban Terbaik

Dalam pandangan Anda, Anda menggunakan beberapa baris dengan:

Auth::user()->posts->where...

Pertimbangkan bahwa Auth::user()->posts mengembalikan collection dari postingan pengguna tetapi Auth::user()->posts() mengembalikan instance query builder.

Untungnya laravel collection memiliki metode where() yang ditentukan tetapi tidak memiliki metode whereDate(), sebaliknya ini didefinisikan pada query builder, jadi dalam pandangan Anda, Anda harus menggunakan baris ini :

Auth::user()->posts()->whereDate('created_at','=',$date)->sum('cijena')
2
dparoli 6 Agustus 2019, 20:41