fic*_*489 13 php laravel laravel-5.2
我正在寻找类似的东西:
DB::table('users')->getNextGeneratedId();
Run Code Online (Sandbox Code Playgroud)
不
$user->save($data)
$getNextGeneratedId = $user->id;
Run Code Online (Sandbox Code Playgroud)
有人知道这很热吗?
小智 9
这项工作对我来说:(PHP:7.0 - Laravel 5.5)
use DB;
$statement = DB::select("SHOW TABLE STATUS LIKE 'users'");
$nextId = $statement[0]->Auto_increment;
Run Code Online (Sandbox Code Playgroud)
您可以使用此聚合方法并将其递增:
$nextId = DB::table('users')->max('id') + 1;
Run Code Online (Sandbox Code Playgroud)
您需要执行MySQL查询以获取自动生成的ID.
show table status like 'users'
Run Code Online (Sandbox Code Playgroud)
在Laravel5中,您可以执行以下操作.
public function getNextUserID()
{
$statement = DB::select("show table status like 'users'");
return response()->json(['user_id' => $statement[0]->Auto_increment]);
}
Run Code Online (Sandbox Code Playgroud)
对于 PostgreSQL:
<?php // GetNextSequenceValue.php
namespace App\Models;
use Illuminate\Support\Facades\DB;
trait GetNextSequenceValue
{
public static function getNextSequenceValue()
{
$self = new static();
if (!$self->getIncrementing()) {
throw new \Exception(sprintf('Model (%s) is not auto-incremented', static::class));
}
$sequenceName = "{$self->getTable()}_id_seq";
return DB::selectOne("SELECT nextval('{$sequenceName}') AS val")->val;
}
}
Run Code Online (Sandbox Code Playgroud)
该模型:
<?php // User.php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use GetNextSequenceValue;
}
Run Code Online (Sandbox Code Playgroud)
结果:
<?php // tests/Unit/Models/UserTest.php
namespace Tests\Unit\Models;
use App\Models\User;
use Tests\TestCase;
class UserTest extends TestCase
{
public function test()
{
$this->assertSame(1, User::getNextSequenceValue());
$this->assertSame(2, User::getNextSequenceValue());
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
这是我在 Laravel 中使用的代码片段,它可以完美地工作:
$id=DB::select("SHOW TABLE STATUS LIKE 'Your table name'");
$next_id=$id[0]->Auto_increment;
echo $next_id;
Run Code Online (Sandbox Code Playgroud)
在 MySQL 中,您可以通过此查询获取自动生成的 id。
SELECT AUTO_INCREMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = "databaseName"
AND TABLE_NAME = "tableName"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13424 次 |
| 最近记录: |