本文整理匯總了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();
}