Skip to content

Commit 48fe062

Browse files
committed
Fixed issue mongodb#8
1 parent 45d8847 commit 48fe062

File tree

3 files changed

+40
-1
lines changed

3 files changed

+40
-1
lines changed

Diff for: src/Jenssegers/Mongodb/Builder.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -268,8 +268,13 @@ public function insertGetId(array $values, $sequence = null)
268268

269269
if (1 == (int) $result['ok'])
270270
{
271+
if (!$sequence)
272+
{
273+
$sequence = '_id';
274+
}
275+
271276
// Return id as a string
272-
return (string) $values['_id'];
277+
return (string) $values[$sequence];
273278
}
274279
}
275280

Diff for: tests/ModelTest.php

+22
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
require_once('vendor/autoload.php');
33
require_once('models/User.php');
44
require_once('models/Soft.php');
5+
require_once('models/Book.php');
56

67
use Jenssegers\Mongodb\Connection;
78
use Jenssegers\Mongodb\Model;
@@ -19,6 +20,7 @@ public function tearDown()
1920
{
2021
User::truncate();
2122
Soft::truncate();
23+
Book::truncate();
2224
}
2325

2426
public function testNewModel()
@@ -204,4 +206,24 @@ public function testSoftDelete()
204206
$this->assertEquals(1, $all->count());
205207
}
206208

209+
public function testPrimaryKey()
210+
{
211+
$user = new User;
212+
$this->assertEquals('_id', $user->getKeyName());
213+
214+
$book = new Book;
215+
$this->assertEquals('title', $book->getKeyName());
216+
217+
$book->title = "A Game of Thrones";
218+
$book->author = "George R. R. Martin";
219+
$book->save();
220+
221+
$this->assertEquals("A Game of Thrones", $book->getKey());
222+
223+
$check = Book::find("A Game of Thrones");
224+
$this->assertEquals('title', $check->getKeyName());
225+
$this->assertEquals("A Game of Thrones", $check->getKey());
226+
$this->assertEquals("A Game of Thrones", $check->title);
227+
}
228+
207229
}

Diff for: tests/models/Book.php

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?php
2+
3+
use Jenssegers\Mongodb\Model as Eloquent;
4+
5+
class Book extends Eloquent {
6+
7+
protected $collection = 'books';
8+
9+
protected static $unguarded = true;
10+
11+
protected $primaryKey = 'title';
12+
}

0 commit comments

Comments
 (0)