如何使用Eloquent从Lumen中的数据库中获取数据?

时间:2017-10-28 12:30:50

标签: php mysql laravel lumen

我有用户表和desc如下。

user - user_id,email,password,token,date_created,status

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

所以,为此,我有模型(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();

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

1 个答案:

答案 0 :(得分:1)

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

更改

reference

收件人

function openRecords(start, end) {
// Extraction of the xml file
 var file;
 $.ajax({
    type: 'GET',
    url: 'allrtp.xml',
    dataType: 'xml',
    success: function(xml) {
        file = $.parseXML(xml);
    },
    error: function(ex) {
        console.log(ex);
    }
})

// Test
var start = '2016-02-15T12:57:00+01:00';
var end = '2019-02-16T13:57:00+01:00';

setTimeout(function(){
// Editing the file to have the good dates
file.find('StartDateTime').text(start);
file.find('EndDateTime').text(end);},1500);

}

这时您应该可以调用该模型而没有任何问题。

use App\Model\User;