使用 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 模型获取数据时没有从表中获取结果的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 - 从表中获取最后一个 id

Laravel 根据数据透视表从表中获取标题

使用模型内的query()方法从表中获取单个值

使用 Laravel 和 Eloquent 从表中全选

如何从表中获取所有数据,包括表 ID

由于外键为空值,无法从表中获取数据