文章的发布与删除
在文章控制器中,写两个方法
/**
* 修改文章状态
* @param int $id
* @return \Illuminate\Http\JsonResponse
*/
public function status(int $id)
{
// todo 数据验证
$article = Article::where('id', $id)->first();
if (empty($article->id)) {
$this->response->setMsg(400, '信息不存在');
return $this->response->responseJSON();
}
Article::release($article);
$this->response->setData(['status' => (int)$article->is_release]);
return $this->response->responseJSON();
}
/**
* 删除
* @param array $ids
* @return bool
*/
public static function del(array $ids)
{
return Article::whereIn('id', $ids)->update(['is_del' => 1]);
}
前端使用/admin/article/del接口,参数是文章ID的数组,单独删除和批量删除公用这个一个接口,单独删除就是批量删除的特殊情况。文章的模型是批量删除的,这里是逻辑删除,并不没有真的把数据从数据库中删除掉。文章模型删除的方法
/**
* 删除
* @param Article $article
* @return bool
*/
public static function del(Article $article)
{
$article->is_del = 1;
return $article->update();
}
文章的开启和停用,使用/admin/article/status/{id}接口,最后那个{id}是文章的id,指明是切换该条信息的发不状态。模型层代码如下
/**
* 发布文章
* @param Article $article
* @return bool
*/
public static function release(Article $article)
{
$article->is_release = !$article->is_release;
return $article->update();
}
每次调用该接口,一定是为了把当前的状态改为另外一个状态,因为只有两个状态,先取出该条文章的发不状态,然后更新为另外一个状态即可,我这里是取非操作,比如当前状态是1,取非后就是0,当前状态是0,取非后就是1。
完。