本文整理汇总了PHP中app\Board::whereIn方法的典型用法代码示例。如果您正苦于以下问题:PHP Board::whereIn方法的具体用法?PHP Board::whereIn怎么用?PHP Board::whereIn使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类app\Board
的用法示例。
在下文中一共展示了Board::whereIn方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getCites
/**
* Returns a collection of posts as cited in a post's text body.
*
* @param \App\Post $post
* @return Collection
*/
public static function getCites(Post $post)
{
$postCites = [];
$boardCites = [];
$lines = explode("\n", $post->body);
$relative = "/\\s?>>(?P<board_id>\\d+)\\s?/";
$global = "/\\s?>>>\\/(?P<board_uri>" . Board::URI_PATTERN_INNER . ")\\/(?P<board_id>\\d+)?\\s?/";
foreach ($lines as $line) {
$line = str_replace(">", ">", $line);
preg_match_all($relative, $line, $relativeMatch);
preg_match_all($global, $line, $globalMatch);
if (isset($relativeMatch['board_id'])) {
foreach ($relativeMatch['board_id'] as $matchIndex => $matchBoardId) {
$postCites[] = ['board_uri' => $post->board_uri, 'board_id' => $matchBoardId];
}
}
if (isset($globalMatch['board_uri'])) {
foreach ($globalMatch['board_uri'] as $matchIndex => $matchBoardUri) {
$matchBoardId = $globalMatch['board_id'][$matchIndex];
if ($matchBoardId != "") {
$postCites[] = ['board_uri' => $matchBoardUri, 'board_id' => $matchBoardId];
} else {
$boardCites[] = $matchBoardUri;
}
}
}
}
// Fetch all the boards and relevant content.
if (count($boardCites)) {
$boards = Board::whereIn('board_uri', $boardCites)->get();
} else {
$boards = new Collection();
}
if (count($postCites)) {
$posts = Post::where(function ($query) use($postCites) {
foreach ($postCites as $postCite) {
$query->orWhere(function ($query) use($postCite) {
$query->where('board_uri', $postCite['board_uri'])->where('board_id', $postCite['board_id']);
});
}
})->get();
} else {
$posts = new Collection();
}
return ['boards' => $boards, 'posts' => $posts];
}
示例2: getBoardsWithConfigRights
/**
* Returns a list of board_uris where the canEditConfig permission is given.
*
*/
public function getBoardsWithConfigRights()
{
$boards = [];
foreach ($this->getPermissions() as $board_uri => $permissions) {
if ($this->canEditConfig($board_uri)) {
if ($board_uri == "") {
return Board::andCreator()->andOperator()->get();
} else {
$boards[] = $board_uri;
}
}
}
return Board::whereIn('board_uri', $boards)->andCreator()->andOperator()->get();
}