Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉维观测器加延迟_Php_Laravel_Php Carbon - Fatal编程技术网

Php 拉维观测器加延迟

Php 拉维观测器加延迟,php,laravel,php-carbon,Php,Laravel,Php Carbon,如何在laravel observer执行功能之前向其添加延迟 我有此代码,但不起作用: public function created(School $school) { $addTime = Carbon::parse($school->created_at) ->addSeconds(6); if(Carbon::now() = $addTime) { $manager = School::where('id', $school-&

如何在laravel observer执行功能之前向其添加延迟

我有此代码,但不起作用:

public function created(School $school)
{
    $addTime = Carbon::parse($school->created_at)
      ->addSeconds(6);

    if(Carbon::now() = $addTime) {
        $manager = School::where('id', $school->id)->with('manager')->first();
        $user = User::where('id', $school->manager->id)->first();
        Mail::to($user->email)->locale('id')->queue(new SchoolGenerated($school, $user));
    }
}
逻辑

我的控制器中有这样的功能

public function store(Request $request) {
  $school = new School;
  //.....
  if($school->save()){
    //save manager.....
  }
}
如您所见,我在保存学校数据后将管理员分配给学校,因此,如果我立即运行我的观察,它将找不到我的用户(管理员),因此我需要在我的观察者中设置延迟,直到管理员数据也被存储

如何为我的观察者添加延迟?

您可以在php中使用
睡眠(int$seconds)
函数,请尝试以下操作:

public function created(School $school) 
{
     // add delay
     $seconds = 10;

     sleep($seconds);

     $manager = School::where('id', $school->id)->with('manager')->first();
     $user = User::where('id', $school->manager->id)->first();
     Mail::to($user->email)->locale('id')->queue(new SchoolGenerated($school, $user));
}
}

已解决
由于在创建经理后我无法获取学校数据,因此我将观察改为创建经理而不是创建学校,这样我可以获取经理数据,并根据经理数据获取学校数据。所以我基本上只是将逻辑旋转180˚就得到了我想要的结果。

仍然无法获得经理数据,我还更改了控制器以确保经理数据与学校数据一起返回,但它没有对问题进行任何更改