【问题标题】:How to fetch data from database in Lumen using Eloquent?如何使用 Eloquent 从 Lumen 中的数据库中获取数据?
【发布时间】:2018-04-09 22:16:03
【问题描述】:

我有如下的用户表和描述。

用户 - 用户 ID、电子邮件、密码、令牌、创建日期、状态

我想在我的控制器中获取这些数据。

所以,为此,我有模型(User.php)

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
class User extends Model {
    protected $table = 'user';
    protected $primaryKey = 'user_id';
}

在我的路由过滤器中,这是写的。

$app->post("api/register","APIController@register");

现在这是我的控制器 (APIController.php)

namespace App\Http\Controllers;

use Laravel\Lumen\Routing\Controller as BaseController;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use App\Model\User;

class APIController extends BaseController
{
    public $http_status=200;

    public function __construct()
    {

    }

    public function index(){
        echo 1;
    }

    public function register(Request $request){
        $json=array();
        $error=array();
        $error_status=0;

        if($request->has("email") && $request->has("password")){
            $email=trim($request->get("email"));
            $password=trim($request->get("password"));

            if(!filter_var($email,FILTER_VALIDATE_EMAIL)){
                array_push($error,"Email is not valid");
                $error_status=1;
            }

            if(strlen($password)<6){
                array_push($error, "Password length must be grater than 6");
                $error_status=1;
            }

            if(!$error_status){
                $user = User::all(); // here I have problem

                $json["status_code"]=1;
                $json["data"]=$user;
            }else{
                $json["status_code"]=0;
                $json["error"]=$error;
            }
        }else{
            $json["status_code"]=0;
            $json["status_remark"]="Some more data required";
        }

        return response()->json($json,$this->http_status);
    }

    public function login(){
        echo 1;
    }
}

当该评论部分,当我尝试获取数据时,它会显示

哎呀,好像出了点问题

我是流明的新手,我不知道该怎么做。请帮我。

查看其他重要文件

.env

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=lumen_api
DB_USERNAME=root
DB_PASSWORD=

我还在 bootstrap/app.php 中取消了对这一行的注释

$app->withEloquent();

虽然它不起作用。请帮帮我。

【问题讨论】:

  • 将 APP_DEBUG 设置为 true 并检查您的 storage/logs/lumen.log 文件中是否有任何错误。
  • 当然是在您的.env 文件中。忘了说,抱歉。
  • APP_DEBUG 已经为真。我只是在检查日志文件。 @mrHooty
  • 取消注释 bootstrap/app.php 中的这一行 Dotenv::load(__DIR__.'/../'); 以启用调试模式,即使 APP_DEBUG = true in lumen 并告诉我们错误是什么!!

标签: php mysql laravel lumen


【解决方案1】:

您似乎为模型调用了错误的位置。

改变

use App\Model\User;

收件人

use App\User;

那么您应该能够毫无问题地调用模型。

$users = User::all()->get();

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 2016-11-19
    • 2019-02-03
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2011-11-06
    相关资源
    最近更新 更多