im пытается сделать выбор для администратора, чтобы выбрать, в каком порядке показывать категории на веб-сайте.mysql_num_rows in laravel 5
поэтому на панели управления у него есть стрелка вверх и стрелка вниз рядом с названием каждой категории. если он щелкнет, категория снизится в одном порядке.
my problam есть, если категория находится внизу, последняя в порядке, и администратор нажимает стрелку вниз, я хочу показать ошибку.
, так что я сделал что-то вроде этого на мой контроллер:
/*
* Category order - down
*/
public function down($id)
{
$cat = Cat::findOrFail($id);
$new_location = $cat->location + 1;
$num_cats = count(Cat::all()); //number of cats
//die($num_cats);
if ($new_location >= $num_cats)
{
return Redirect::route('pages')->with('msg', 'it is allready the last category');
}
$cat->where('location', '=', $new_location)->update(['location' => $cat->location]); //moving the old category
$cat->where('id', '=', $id)->update(['location' => $new_location]); //updating the new location
return Redirect::route('pages')->with('msg', 'the cat has been updated');
}
но $ num_cats превращается в нуль.
любые идеи, как я могу получить количество всех моих категорий?
EDIT: Модель
class Cat extends Model {
public $timestamps = false;
protected $fillable = array('name', 'location', 'slug');
/*
* A categorey has many pages
*/
public function pages() {
return $this->hasMany('App\Page')->where('solo', '!=', 1);
}
}
благодарит
Коллекция, которая возвращается из всего метода, имеет на ней метод подсчета. 'Cat :: all() -> count()' –
Я изменил его и по-прежнему возвращает null. – amf
Есть ли какие-либо результаты, полученные от вашего all()? Вы можете попробовать 'Cat :: get() -> count()', то же самое, просто используя get вместо этого. –