无法在laravel

时间:2016-12-09 05:55:25

标签: mongodb laravel-5 mongodb-query jenssegers-mongodb

让我解释一下我所遵循的所有步骤。

我正在使用LAMP。

首先我安装了laravel,MongoDB和jenssegers / laravel-mongodb pakage。为此,我按了This链接。

之后我使用终端创建数据库,表和插入数据,但都取得了成功。欢呼声

下一步是将mongodb与laravel集成,以便在 app / config / database.php 文件中添加MongoDB连接详细信息。

'mongodb' => [
        'driver' => 'mongodb',
        'host' => env('DB_HOST', 'localhost'),
        'port' => env('DB_PORT', 27017),
        'database' => env('DB_DATABASE', 'usedgoodstore'),
    ],

'default' => env('DB_CONNECTION', 'mongodb'),

到目前为止一切正常。

接下来我创建路由,视图,控制器,模型文件和插入代码。

路由/ web.php

Route::post('/index', 'UserController@index');

welcome.blade.php

<form action="{{ url('/index') }}" method="post">
                <input name="_token" type="hidden" value="{{ csrf_token() }}"/>
                First name:<br>
                <input type="text" name="firstname">
                <br>
                Last name:<br>
                <input type="text" name="lastname">
                <br><br>
                <input type="submit" value="Submit">
            </form>

UserController.php

<?php
namespace App\Http\Controllers;

use App\Model\User;

use Illuminate\Http\Request;

class UserController  extends Controller{

protected $user;

public  function __construct(User $user){
    $this->user = $user;
}

public function Index(Request $request){

    $data = array('firstname' => $request['firstname'], 'lastname' => $request['lastname']);

    $user = $this->user->PostUser($data);

    return response()->json($user,200);

}


}

User.php(模型文件)

<?php
namespace App\Model;

use Jenssegers\Mongodb\Eloquent\Model as Moloquent;

use DB; // if I use and not use  this statment and then getting diffrent errors

class User extends Moloquent {

protected $connection = 'mongodb';

protected $collection = 'user';


public function PostUser($data){




        $insertData = DB::collection('user')->insert($data); // I'm getting error on this line.
    if($insertData){
        return true;
    }

}

}

错误我得到的是:

  

User.php第25行中的FatalThrowableError:   Class&#39; App \ Model \ DB&#39;找不到

如果我在 User.php(模型文件)中添加使用数据库 ,我将收到以下错误。

  

DatabaseManager.php第317行中的FatalThrowableError:   调用未定义的方法Illuminate \ Database \ MySqlConnection :: collection()

任何人都可以帮助我摆脱这种局面。我没有得到我想念的东西?

感谢。

1 个答案:

答案 0 :(得分:2)

首先打开app / config / database.php文件并制作你的mongodb默认数据库。

  

&#39;默认&#39; =&GT; &#39; mongodb的&#39;,

如果您不想将mongodb作为默认数据库连接,那么您可以执行以下操作。

public function PostUser($data){
    $insertData = DB::connection('mongodb')->collection('user')->insert($data); // I'm getting error on this line.
if($insertData){
    return true;
}