hasOne(ArticleCategory::class, 'category_id', 'category_id')->joinType('left')->withField('category_id, name')->bind(['category_name' => 'name']); } /** * 文章分类搜索器 * @param $query * @param $value * @param $data */ public function searchCategoryIdAttr($query, $value, $data) { if ($value) { $query->where('category_id', $value); } } /** * 文章标题搜索器 * @param $query * @param $value * @param $data */ public function searchTitleAttr($query, $value, $data) { if ($value) { $query->where('title', 'like', '%' . $value . '%'); } } /** * 文章标题搜索器 * @param $query * @param $value * @param $data */ public function searchIsShowAttr($query, $value, $data) { if ($value != '') { $query->where('is_show', $value); } } public function searchIdsAttr(Query $query, $value, $data) { if (!empty($value)) { $query->whereIn('id', $data['ids']); } } /** * 文章标题搜索器 * @param $query * @param $value * @param $data */ public function searchSortAttr($query, $value, $data) { if ($value) { $query->where('sort', $value); } } public function getArticleUrlAttr($value, $data) { $wap_domain = !empty(env("system.wap_domain")) ? preg_replace('#/$#', '', env("system.wap_domain")) : request()->domain(); $web_domain = !empty(env("system.web_domain")) ? preg_replace('#/$#', '', env("system.web_domain")) : request()->domain(); return [ 'wap_url' => $wap_domain . "/wap/" . $data['site_id'] . "/pages/article/detail?id={$data['id']}", 'web_url' => $web_domain . "/web/" . $data['site_id'] . "/article/detail?id={$data['id']}" ]; } public function getImageThumbBigAttr($value, $data) { if ($data['image'] != '') { return get_thumb_images($data['site_id'], $data['image'], FileDict::BIG); } } public function getImageThumbMidAttr($value, $data) { if ($data['image'] != '') { return get_thumb_images($data['site_id'], $data['image'], FileDict::MID); } } public function getImageThumbSmallAttr($value, $data) { if ($data['image'] != '') { return get_thumb_images($data['site_id'], $data['image'], FileDict::SMALL); } } }