【问题标题】:How to use MongoDB in Laravel Framework如何在 Laravel 框架中使用 MongoDB
【发布时间】:2014-12-11 10:03:09
【问题描述】:

我在使用带有 Laravel 框架的 MongoDB 时遇到问题。我用过这个Laravel-MongoDB

这是我得到的错误

/app/model/User.php

<?php 

use Jenssegers\Mongodb\Model as Eloquent;

class User extends Eloquent {

     //protected $connection = 'mongodb';
     protected $collection = 'users';

     $user = User::all();

     public function all()
     {
        return $this->$user;
     }
}


?>

/app/routes.php

Route::get('users', function()
{

    $users = User::all();   
    return View::make('users')->with('users',$users);

});

/app/config/database.php

'mongodb' => array(
            'driver'   => 'mongodb',
            'host'     => 'localhost',
            'port'     => 27017,
            'username' => 'username',
            'password' => 'password',
            'database' => 'users'
        ),

我不知道我的实现有什么问题。请大家帮帮我..

【问题讨论】:

    标签: laravel-4 mongodb-php


    【解决方案1】:

    我认为这不是 mongo 的问题

    你不能这样声明局部类变量。

    请试试这个

    <?php 
    
    use Jenssegers\Mongodb\Model as Eloquent;
    
    class User extends Eloquent {
    
         //protected $connection = 'mongodb';
         protected $collection = 'users';
    
    }
    
    
    ?>
    

    控制器/UserController.php

    class UserController extends \BaseController 
    {
            public function all()
            {
                 return User::all();
            }
    }
    

    routes.php

    route::get("all-users","UserController@all");
    

    【讨论】:

    • 嗨@Anand,感谢您的快速回复。我按照您的说明更改了代码,并收到此错误消息screencast.com/t/El6x69E9pC
    • 以及为什么要在这里写这部分,我应该在控制器中
    • 我试过了,结果是screencast.com/t/LzAXD6nBFN。有没有教如何在 laravel 中使用 mongodb 的文档?请指教。
    • 其实我是 Laravel 的新手..请帮忙。
    • 我只是按照本文档中的说明进行操作 github.com/jenssegers/Laravel-MongoDB
    【解决方案2】:

    不是 mongo+Laravel 的问题。这个问题是因为下面的代码 模型内线

    $user = User::all();
    

    所以请改写如下代码

    app/model/user.php

    <?php 
    
        use Jenssegers\Mongodb\Model as Eloquent;
    
        class User extends Eloquent {
    
             //protected $connection = 'mongodb';
             protected $collection = 'users';
    
        }
    ?>
    

    所有() 是一个预定义的函数,返回该模型的所有行。所以你可以通过没有函数定义来访问它。重写路由如下

    app/routes.php

    <?php 
        Route::get('users', function()
       {
    
        $users = User::all();   
        return View::make('users')->with('users',$users);
    
       });
    ?>
    

    【讨论】:

      猜你喜欢
      • 2020-04-22
      • 2017-01-30
      • 2020-07-20
      • 2020-04-08
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多