lumen -mongodb -Jenssegers/laravel -Mongodb -Postman

问题描述 投票:0回答:0

i在我的Wamp上安装了MongoDB,C:\ wamp64在\ mongodb \ mongodb.3.4in中,我在路径中添加了mongodb,并创建了一个Windows Service来在必要时启动它。 我已经通过作曲家安装了管腔,之后我已经安装了:

  • “ laravel/lumen-framework”:“ 5.3。*”,
  • “ barryvdh/laravel-ide-helper”:“ v2.2.1”,
  • Jenssegers/laravel-mongodb:“ v3.1.3”
  • “ Jenssegers/MongoDB-Session”:“ V1.1.0”
  • Finaly i已在我的WAMP php上安装
  • Mongodb.dll
,并在php.ini中添加了

extension=php_mongodb.dll。 现在,MongoDB上的扩展很活跃。 这是我的用户类:

这是我的迁移:enter image description here <?php use Illuminate\Support\Facades\Schema; use Jenssegers\Mongodb\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateUsersTable extends Migration { /** * The name of the database connection to use. * * @var string */ protected $connection = 'mongodb'; /** * Run the migrations. * * @return void */ public function up() { Schema::connection($this->connection)-> table('Users', function (Blueprint $collection) { $collection->index('id'); $collection->string('name'); $collection->string('surname'); $collection->unique('username'); $collection->string('password',64); $collection->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::connection($this->connection) ->table('Users', function (Blueprint $collection) { $collection->drop(); }); } }

这是.env文件:

APP_ENV=local
APP_DEBUG=true
APP_KEY=
APP_TIMEZONE=UTC

DB_CONNECTION=mongodb
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

MONGODB_HOST=localhost
MONGODB_PORT=27017
MONGODB_USERNAME=joy
MONGODB_PASSWORD=mongo@ad@joy
MONGODB_DATABASE=brasserie
MONGODB_AUTHDATABASE=admin

CACHE_DRIVER=file
SESSION_DRIVER=file

i在root应用中创建了一个配置目录,我添加了一个database.php配置文件:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | PDO Fetch Style
    |--------------------------------------------------------------------------
    |
    | By default, database results will be returned as instances of the PHP
    | stdClass object; however, you may desire to retrieve records in an
    | array format for simplicity. Here you can tweak the fetch style.
    |
    */

    'fetch' => PDO::FETCH_CLASS,

    /*
    |--------------------------------------------------------------------------
    | Default Database Connection Name
    |--------------------------------------------------------------------------
    |
    | Here you may specify which of the database connections below you wish
    | to use as your default connection for all database work. Of course
    | you may use many connections at once using the Database library.
    |
    */

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

    /*
    |--------------------------------------------------------------------------
    | Database Connections
    |--------------------------------------------------------------------------
    |
    | Here are each of the database connections setup for your application.
    | Of course, examples of configuring each database platform that is
    | supported by Laravel is shown below to make development simple.
    |
    |
    | All database work in Laravel is done through the PHP PDO facilities
    | so make sure you have the driver for your particular database of
    | choice installed on your machine before you begin development.
    |
    */

    'connections' => [



        'mongodb' => array(
            'driver'   => 'mongodb',
            'host'     => env('MONGODB_HOST', '127.0.0.1'),
            'port'     => env('MONGODB_PORT', 27017),
            'username' => env('MONGODB_USERNAME', 'root'),
            'password' => env('MONGODB_PASSWORD', 'testbrasserie'),
            'database' => env('MONGODB_DATABASE', 'synthese'),
           'options' => array(
                'db' => env('MONGODB_AUTHDATABASE', 'admin') //Sets the auth DB
            )//*/
        ),

    ],

    /*
    |--------------------------------------------------------------------------
    | Migration Repository Table
    |--------------------------------------------------------------------------
    |
    | This table keeps track of all the migrations that have already run for
    | your application. Using this information, we can determine which of
    | the migrations on disk haven't actually been run in the database.
    |
    */

    'migrations' => 'migrations',

    /*
    |--------------------------------------------------------------------------
    | Redis Databases
    |--------------------------------------------------------------------------
    |
    | Redis is an open source, fast, and advanced key-value store that also
    | provides a richer set of commands than a typical key-value systems
    | such as APC or Memcached. Laravel makes it easy to dig right in.
    |
    */

    'redis' => [

        'cluster' => env('REDIS_CLUSTER', false),

        'default' => [
            'host'     => env('REDIS_HOST', '127.0.0.1'),
            'port'     => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DATABASE', 0),
            'password' => env('REDIS_PASSWORD', null),
        ],

    ],//*/

];

我启用了雄辩,外墙和杰森格服务提供商。所以这是我的boostrap/app.php:

<?php

require_once __DIR__.'/../vendor/autoload.php';

try {
    (new Dotenv\Dotenv(__DIR__.'/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
    //
}

/*
|--------------------------------------------------------------------------
| Create The Application
|--------------------------------------------------------------------------
|
| Here we will load the environment and create the application instance
| that serves as the central piece of this framework. We'll use this
| application as an "IoC" container and router for this framework.
|
*/

$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->withFacades();

// $app->withEloquent();

/*
|--------------------------------------------------------------------------
| Register Container Bindings
|--------------------------------------------------------------------------
|
| Now we will register a few bindings in the service container. We will
| register the exception handler and the console kernel. You may add
| your own bindings here if you like or you can make another file.
|
*/

$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);

/*
|--------------------------------------------------------------------------
| Register Middleware
|--------------------------------------------------------------------------
|
| Next, we will register the middleware with the application. These can
| be global middleware that run before and after each request into a
| route or middleware that'll be assigned to some specific routes.
|
*/

// $app->middleware([
//    App\Http\Middleware\ExampleMiddleware::class
// ]);

// $app->routeMiddleware([
//     'auth' => App\Http\Middleware\Authenticate::class,
// ]);

/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
|
| Here we will register all of the application's service providers which
| are used to bind services into the container. Service providers are
| totally optional, so you are not required to uncomment this line.
|
*/

$app->register(App\Providers\AppServiceProvider::class);
// $app->register(App\Providers\AuthServiceProvider::class);
// $app->register(App\Providers\EventServiceProvider::class);


if ($app->environment() !== 'production') {
    $app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
}

//class_alias ('Jenssegers\Mongodb\Eloquent\Model', 'Moloquent');
$app->register('Jenssegers\Mongodb\MongodbServiceProvider');

$app->withEloquent();
/*
|--------------------------------------------------------------------------
| Load The Application Routes
|--------------------------------------------------------------------------
|
| Next we will include the routes file so that they can all be added to
| the application. This will provide all of the URLs the application
| can respond to, as well as the controllers that may handle them.
|
*/



$app->group(['namespace' => 'App\Http\Controllers'], function ($app) {
    require __DIR__.'/../routes/web.php';
});

$app->configure('database');

return $app;
我是我的Userstableseeder:


我已经启动了工匠迁移:安装然后工匠迁移,最后是Artisan DB:种子,似乎还可以,这是Mongo内部的结果:

enter image description here

然后我创建了一个UserController

<?php /** * Created by PhpStorm. * User: Joy_Admin * Date: 09/12/2016 * Time: 23:23 */ namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; use DB; class UserController extends Controller { /** * Pour recupérer tous les utilsateurs de la BD * @return \Illuminate\Http\JsonResponse */ public function index() { $users = User::all(); return response()->json($users); } /** * Pour recupérer tous les utilsateurs de la BD * @return \Illuminate\Http\JsonResponse */ public function test() { return response()->json("it's ok"); } /** * pour enregistrer un nouvel utilisateur dans la base de données * @param Request $request */ public function create(Request $request) { $user = new User(); $user->name = $request->input('name'); $user->surname = $request->input('surname'); $user->username = $request->input('username'); $user->password = Hash::make($request->input('password')); $user->save();//*/ DB::collection('Users')->insert([ 'name' => 'name1', 'surname' => 'surname1', 'username' => 'username1', 'password' => Hash::make('password1') ]); return response()->json($user); } /** * On renvoit l'individu dans la BD * correspondant à l'id spécifié * @param $id * @return \Illuminate\Http\JsonResponse */ public function get($id) { $user = User::find($id); return response()->json($user); } /** * Mettre à jour les informations sur un utilisateur de la BD * @param Request $request * @param $id * @return \Illuminate\Http\JsonResponse */ public function update(Request $request,$id) { $user = User::find($id); $user->name = $request->input('name'); $user->surname = $request->input('surname'); $user->username = $request->input('username'); $user->password = Hash::make($request->input('password')); $user->save(); return response()->json($user); } public function delete($id) { $user = User::find($id); $user->delete(); return response()->json('Success'); } } enter image description here 最终更新我的路线/web.php

<?php /* |-------------------------------------------------------------------------- | Application Routes |-------------------------------------------------------------------------- | | Here is where you can register all of the routes for an application. | It is a breeze. Simply tell Lumen the URIs it should respond to | and give it the Closure to call when that URI is requested. | */ use App\Http\Controllers\UserController; $app->get('/', function () use ($app) { return $app->version(); }); $app->get('/api/users','UserController@index'); $app->get('/api/users/{id}','UserController@get'); $app->post('/api/users','UserController@create'); $app->put('/api/users/{id}','UserController@update'); $app->delete('/api/users/{id}','UserController@delete'); $app->get('/api','UserController@test');

我已经启动了邮递员,所以我可以测试我的应用程序, 只有
/api
有效,所有其他路线都会给我同样的错误:

Get('/api','userController@test');“/>

  1. GET('/api/users','userController@index');“/>for $app->
</a></li><li>Get('/api/users/{id}','usercontroller@get');“/><a href=for $app->
</a></li><li>DELETE('/api/users/{id}','usercontroller@delete');“/><a href=for $app->
</a>
</li><li><a href=有人可以帮助我解决这个问题吗?for $app-></a></li></ol><p><em>
<strong>openssl和卷曲在我的wamp php中处于活动状态。
    </strong>
	</em>
我解决了问题,
在我的.env中,我有:</p>

<p><code>CACHE_DRIVER=file
SESSION_DRIVER=file
</code></p>

</question>但在我的项目中没有配置,所以当我将其更改为<answer tick=

    CACHE_DRIVER= SESSION_DRIVER=

    现在有效
    
    

    
        

php mongodb postman lumen
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.