小编Nat*_*eck的帖子

将请求实例传递给Model Observer,Laravel 5.4

我刚刚了解了模型观察者,并且希望将我的一些逻辑从控制器转移到观察者。这是我所拥有的:

AppServiceProvider.php

public function boot()
{
    WorkOrder::observe(WorkOrderObserver::class);
}
Run Code Online (Sandbox Code Playgroud)

WorkOrderObserver.php

namespace App\Observers;

use App\Site;
use App\WorkOrder;
use Carbon\Carbon;
use App\WorkOrderNumber;

class WorkOrderObserver
{

    public function creating(WorkOrder $workOrder)
    {
        $branchOfficeId = Site::findOrFail($request->site_id)->branch_office_id;
        $today = Carbon::today('America/Los_Angeles');
        $todaysWorkOrderCount = WorkOrder::where('created_at_pst', '>=', $today)->count();

        $workOrder->work_order_number = (new WorkOrderNumber)
            ->createWorkOrderNumber($branchOfficeId, $todaysWorkOrderCount);
        $workOrder->completed_by = null;
        $workOrder->status_id = 1;
        $workOrder->work_order_billing_status_id = 1;
        $workOrder->created_at_pst = Carbon::now()->timezone('America/Los_Angeles')
            ->toDateTimeString();
    }

}
Run Code Online (Sandbox Code Playgroud)

问题是从观察者内部访问请求。我在文档中看不到任何内容。我在这里找到了一个与此相关的线程,并建议使用请求助手功能。我尝试过,request('site_id')但它是空的。

php laravel eloquent

3
推荐指数
1
解决办法
1690
查看次数

标签 统计

eloquent ×1

laravel ×1

php ×1