如何检查PHP中的条目是否已删除?

时间:2017-08-02 11:02:50

标签: php mysql database laravel

我删除帖子:

$this->delete('/api/posts/1');

如何检查是否删除?

$this->assertNull(Post::find($post->id)); 

它不起作用!

4 个答案:

答案 0 :(得分:3)

试试这个:

$this->notSeeInDatabase('posts', ['id' => $post->id]);

描述:

->notSeeInDatabase($table, array $data)  

->missingFromDatabase($table, array $data)

一个只是另一个的别名。

答案 1 :(得分:1)

大多数答案都是复杂或使用额外函数来调用的方法。 Laraval delete函数返回一个布尔值或一个null

/**
 * Delete the model from the database.
 *
 * @return bool|null
 * @throws \Exception
 */
public function delete()
{
  ....
  ....
}

因此您可以使用此代码来检查删除。

try {
  if ($this->delete('/api/posts/1')) {
  }    
} catch (\Exception $exception) {}

答案 2 :(得分:0)

您可以使用Post::findOrFail()进行检查,也可以查看if(Post::findById($id) == null)

编辑:不确定这是否仍然适用于Laravel> 5.2但如果您软删除记录,则可以获取集合withTrashed()。然后你可以使用if($record->isTrashed()) { ... }。此功能在模型中不是默认值,但存在于SoftDelete特征中。

在此处找到编辑信息:this thread

答案 3 :(得分:0)

你应该试试这个:

$post = Post::find($post->id); 

if(is_null($post))

希望这对你有用!!!