我在一个问题上遇到了麻烦。在侧边栏过滤器功能中,当我单击复选框时,它将正确显示列表。但是当我取消选中复选框时,它将显示“array_merge(): Argument #2 is not an array”检查元素时显示此错误。当我点击复选框时,它会生成这个 url "http://abc.local/genre-tags/?id%5B%5D=31" 。当我取消选中复选框时,它会显示错误的 url“http://abc.local/genre-tags/”。以下是控制器和js代码。
public function genresFilter ()
{
$sortBy = Input::get('sortBy', 'id');
$dir = Input::get('direction', 'desc');
$orderBy = [
'tracks'=>[ 'order_by'=>$sortBy, 'direction'=>$dir ]
];
$id = Input::get('id');
$category = Category::where('slug','music-genre')->first();
$tag = Tag::with('tracks','elements')->where('category_id', $category->id)->whereIn('id', $id)->get();
echo "<pre>";
print_r($tag->toArray());
die();
$this->layout->content = View::make('public.tags.genres', compact('tag'));
}
//Sidebar Filter Genre Tracks
$(document).ready(function () {
$('.genreTag').on('change', function (e)
{
$('input.filter-playlist, .popularGenreTag, .mood-emotion, .production-type, .vocals, .all-tracks, .last-year, .last-month, .last-week, .last-day').each(function() {
var $this = $(this);
$this.prop('checked', false);
$this.parent().find('> div').removeClass('chk-checked').addClass('chk-unchecked');
});
e.preventDefault();
id = [];
$('.genreTag:checked').each(function()
{
id.push($(this).attr('id'));
});
冉冉说