У меня возникла проблема, когда я запрашиваю базу данных и получаю нулевые результаты, я получаю пустой массив, хотя хочу бросить «ModelNotFoundException». Вот мой пример код:Laravel возвращает пустой массив вместо исключения со статусом 200
<?php
#App\Http\Controller\MainController
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Demo;
use DB;
class MainController extends Controller
{
public function getTagRecords($tag, $limit)
{
try{
$results = Demo::getRecordsByTag($tag, $limit);
}catch (Illuminate\Database\Eloquent\ModelNotFoundException $e){
return response()->json(['message'=>'hello there error'], 404);
}
return $results;
}
Я посылаю запрос через AJAX и хочу вернуть сообщение об ошибке, и статус. Я не модифицировал класс Handler.
Вот код модели:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use DB;
class Demo extends Model
{
public static function getRecordsByTag($tag, $limit)
{
$params = [
'tag' => $tag,
'limit' => $limit,
];
return DB::select("SELECT d.idDemo, d.idUsuario, u.Referencia, d.Uri_fichero,
(SELECT Nombre FROM Edad_voz WHERE IdEdad_voz = d.IdEdad_voz) Edad_voz,
(SELECT Nombre FROM Tono_voz WHERE idTono_voz = d.idTono_voz) Tono_voz,
(SELECT Idioma_Variante FROM Idioma WHERE idIdioma = d.idIdioma) Idioma,
(SELECT Nombre FROM Genero WHERE idGenero = d.idGenero) Genero
FROM Demo AS d
INNER JOIN logs AS l ON d.idDemo = l.idElemento
INNER JOIN usuario AS u ON d.idUsuario = u.idUsuario
WHERE
l.accion = :tag AND
l.procesado = '0'
ORDER BY idDemo
LIMIT :limit;", $params);
}
}
Можете ли вы поделиться с нами кодом 'Demo :: getRecordsByTag ($ tag, $ limit)? – infinity