我删除帖子:
$this->delete('/api/posts/1');
如何检查是否删除?
$this->assertNull(Post::find($post->id));
它不起作用!
答案 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))
希望这对你有用!!!