使用 laravel 模型获取数据时没有从表中获取结果
Posted
技术标签:
【中文标题】使用 laravel 模型获取数据时没有从表中获取结果【英文标题】:Getting no result from table , while fetching data using laravel model 【发布时间】:2020-03-17 12:41:48 【问题描述】:我正在尝试使用 laravel 执行简单的 CRUD 操作。但是当我尝试通过 laravel 框架以及普通 php 从表中获取数据时,它会给出错误代码 500。
这是我的控制器类。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\BookModel;
use \DB;
class AdminController extends Controller
function getItems()
$data = DB::select('select * from book');
$data = BookModel::all();
echo($data);
return compact('data');
axiom ,已被使用。 ---> "https://unpkg.com/axios/dist/axios.min.js"
模型类:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BookModel extends Model
protected $table = "book";
public $timestamps = false;
它没有从表中返回任何结果。
【问题讨论】:
检查网络服务器日志是否有错误。 网络服务器日志中没有打印任何内容 这能回答你的问题吗? Reference - What does this error mean in PHP? 向下滚动到“HTTP 错误 500 - 内部服务器错误” @digijay 没有,没有帮助 Laravel 有自己的 500 错误日志。storage/logs/laravel.log
。您应该能够在那里看到错误。话虽如此,您使用的是mysqli
,这与使用 Laravel 的观点背道而驰……当您拥有可用的模型和查询构建器时,您不应该使用原生 PHP 逻辑。
【参考方案1】:
我将控制器更改为
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\BookModel;
use \DB;
class AdminController extends Controller
function getItems()
$data = BookModel::all();
return $data;
但是当我做下面这样的事情时它给出了空结果
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\BookModel;
use \DB;
class AdminController extends Controller
function getItems()
$data = BookModel::all();
return view('admin')->withTasks($data);
有人可以解释为什么它不能早点工作吗?
无论如何,谢谢大家的帮助。
Cheeeeeeeeerrssssss!!!!!!!
【讨论】:
【参考方案2】:您需要添加response()
才能返回没有查看的数据。
如下所示,代码从您的 BookModel
返回 JSON 数据,有时我们需要通过像 axios
这样的 ajax 请求。
class AdminController extends Controller
function getItems()
$data = BookModel::all();
return response()->toJson($data);
使用视图,您可以执行以下操作:
class AdminController extends Controller
function getItems()
$data = BookModel::all();
return view('admin', compact('data'));
您可以通过admin.blade.php
中的$data
变量访问BookModel
数据
【讨论】:
以上是关于使用 laravel 模型获取数据时没有从表中获取结果的主要内容,如果未能解决你的问题,请参考以下文章