嘿,我正确了此代码,以基于两个数据列表过滤和搜索表 所以我在控制器中写了这段代码
$films = Film::filter()->get();
在我的模型中是这样:
public function scopeFilter($query)
{
$directors = request('director')[0];
$genres=request('genre')[0];
if (isset($directors) && $directors != []) {
foreach ($directors as $director) {
$query->orwhere('director', $director);
}
if( isset($genres) && $genres!=[] ){
$query->where(function ($query) use ($genres){
foreach ($genres as $genre) {
$query->orwhere('genre', $genre);
}
});
}
}else{
if( isset($genres) && $genres!=[] ){
foreach ($genres as $genre) {
$query->orwhere('genre', $genre);
}
}
}
return $query;
}
最后在两个变量之间使用or代替and 有谁能解决这个问题 谢谢
答案 0 :(得分:0)
您收到错误了吗?当您说它不起作用时,具体是什么不起作用?是它返回的数据不正确吗?
此外,import pygame
# Window size
WINDOW_WIDTH = 400
WINDOW_HEIGHT = 400
GREY = ( 226, 232, 233 )
###
### Spring sprite that is either upright or compressed
###
class SpringSprite( pygame.sprite.Sprite ):
def __init__( self ):
pygame.sprite.Sprite.__init__( self )
self.upright = pygame.image.load("spring.png").convert_alpha() # 64 x 100
self.compressed = pygame.image.load("spring_compressed.png").convert_alpha() # 64 x 70
self.image = self.upright
self.rect = self.image.get_rect()
self.rect.center = ( WINDOW_WIDTH//2, WINDOW_HEIGHT//2 )
self.crouched = False
self.height_delta= ( self.upright.get_height() - self.compressed.get_height() ) // 2 # 15 pixels (centred)
def crouch( self, crouch=True ):
if ( self.crouched != crouch ):
x,y = self.rect.center
if ( crouch ):
# We've changed from upright to crouched
self.image = self.compressed
y += self.height_delta # difference is centred sprite height
else:
# Changed from crouched back to upright
self.image = self.upright
y -= self.height_delta # difference is centred-sprite height
self.crouched = crouch;
self.rect = self.image.get_rect()
self.rect.center = ( x, y )
def update( self ):
pass
### MAIN
# Open the window
pygame.init()
WINDOW = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ), pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.RESIZABLE )
SPRITES = pygame.sprite.Group()
pygame.display.set_caption("Coiled Spring")
# Add a sprite
spring = SpringSprite()
SPRITES.add( spring )
clock = pygame.time.Clock()
done = False
# Main loop
while not done:
for event in pygame.event.get():
if ( event.type == pygame.QUIT ):
done = True
elif ( event.type == pygame.VIDEORESIZE ):
WINDOW_WIDTH = event.w
WINDOW_HEIGHT = event.h
WINDOW = pygame.display.set_mode( ( WINDOW_WIDTH, WINDOW_HEIGHT ), pygame.HWSURFACE|pygame.DOUBLEBUF|pygame.RESIZABLE )
# Movement keys
keys = pygame.key.get_pressed()
if ( keys[pygame.K_UP] ):
spring.crouch( False ) # Upright
elif ( keys[pygame.K_DOWN] ):
spring.crouch( True ) # Compressed
WINDOW.fill( GREY )
SPRITES.draw( WINDOW )
pygame.display.update()
pygame.display.flip()
clock.tick_busy_loop(60)
pygame.quit()
和$directors
数组的内容是什么样的?他们只是用ID填充数组吗?如果是,则可以尝试执行$genres
子句,而不必遍历所有项目:
whereIn