在null上调用成员函数replicate()(Laravel 5.3)

时间:2016-10-28 05:54:46

标签: php laravel duplicates

我正在研究laravel 5.3,我必须从表中存储一个重复的行这里是我的函数,我得到以下错误 在null 上调用成员函数replicate()  请帮我修理一下 功能

public function copy($id){

$task = Task::find(1);
$newTask = $task->replicate();
$newTask->save();
    }

2 个答案:

答案 0 :(得分:0)

```

公共功能副本($ id){

$task = Task::find(1);
if (null !== $task) {
    $newTask = $task->replicate();
    if (null !== $newTask) {
        $newTask->save();
    }
}

} ```

答案 1 :(得分:0)

要使此问题更具可读性,您可以使用firstOrFail method of Laravel's Eloquent。如果找不到id为1的结果,则抛出Illuminate\Database\Eloquent\ModelNotFoundException,您可以捕获并继续进行。

代码如下:

public function copy($id) {
   try {
     $task = Task::firstOrFail(1);
     $newTask = $task->replicate();
     $newTask->save();
   } catch(Exception $e) {
      // If nothing found with that (1) id, then the throws exception is catched here!
   }
}