محسن بستان
5 سال پیش توسط محسن بستان مطرح شد
2 پاسخ

گزارش گیری در لاراول

سلام دوستان. در حال کار بر روی یک سیستم فروشگاهی هستم. میخوام که 4 نوع گزارش گیری داشته باشم.
1 - گزارش امروز
2 - گزارش هفته
3 - گزارش ماه
4 - گزارش سال
که قراره که تعداد سفارشات ، مقدار ( پول ) فروش ، تاریخ ( برای نمودار chart.js )گزارش گرفته شه.
لطفا اگر امکان پذیره راهنمایی کنید که چطوری باید از چنین چیزی گزارش گرفت. جدول هم به صورت زیر هستش.

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateOrdersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('orders', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->bigInteger('order_number');
            $table->unsignedInteger('user_id');
            $table->unsignedInteger('product_id');
            $table->unsignedInteger('address_id');
            $table->string('payment_method');
            $table->boolean('payment_status')->default(0);
            $table->string('refID');

            $table->foreign('user_id')->references('id')->on('users');
            $table->foreign('product_id')->references('id')->on('products');
            $table->foreign('address_id')->references('id')->on('addresses');
            $table->timestamps();

        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('orders');
    }
}

ثبت پرسش جدید
TEFO
تخصص : لاراول
@tefo.ha27 5 سال پیش مطرح شد
1

بهتره از laravel schedule استفاده کنین اینم لینکش
https://laravel.com/docs/5.8/scheduling#defining-schedules
یعنی هر روز یک کدی رو اجرا میکنین که میشه گذارش روزانه البته باید خودتون اونارو بنویسین
و الی...


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
2

می‌تونید به جدولتون یه فیلد دیگه مثل sold_at یا ordered_at اضافه کنید و یا از همون timestamp و created_at استفاده کنید..
کوئری میزنید که order های این تاریخ رو می‌خواهید و نتایج رو در chartjs نشون میدید

ماهیانه
    return Post::all()->groupBy(function($post) { 
        $post->created_at->format('F');
    });

همچنین از کربن هم میشه استفاده کرد:

Order::where('created_at', '>=', Carbon::now()->subMonth())->get();

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام