私が従ったすべてのステップを説明しましょう。LAMPを使用しています。
まず、Laravel、MongoDB、および jenssegers/laravel-mongodb パッケージをインストールしました。このために、このリンクをたどりました。
その後、ターミナルを使用してデータベース、テーブル、挿入データを作成し、すべて成功しました。
次のステップは、mongodb を laravel と統合することです。そのため、MongoDB 接続の詳細をapp/config/database.phpファイルに追加します。
'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');
ようこそ.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 statement and then getting different 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: クラス 'App\Model\DB' が見つかりません
User.php (モデル ファイル)にuse dbを追加すると、以下のエラーが発生します。
DatabaseManager.php 行 317 の FatalThrowableError: 未定義のメソッド Illuminate\Database\MySqlConnection::collection() の呼び出し
私は何を逃したのですか?