class PostController extends Controller{
public $grupID = 1;
public function store(Request $request)
{
$post = new Post();
$post->GroupID = 'POST-' . $this->grupID;
$post->save();
return response()->json($post);
$this->grupID++;
}
}
数据库结构
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->integer('PostTypeID');
$table->string('GroupID', 100)->nullable();
$table->timestamps();
});
}
我想让groupID自动增加,但它总是返回'POST-1'。
答案 0 :(得分:2)
试试这个,您需要获取数据库中的最后一个值,
class PostController extends Controller{
public function store(Request $request)
{
$lastValue = DB::table('posts')->orderBy('GroupID', 'desc')->first();
$post = new Post();
$post->GroupID = 'POST-' . $lastValue->GroupID + 1 ;
$post->save();
return response()->json($post);
}
}
希望这有帮助:)
答案 1 :(得分:1)
$表 - >增量( 'grupID');
并且它会自动增加。
答案 2 :(得分:1)
class PostController extends Controller{
public function store(Request $request)
{
$last = DB::table('posts')->last();
$post = new Post();
if ($last) {
$part = explode('-', $last->GroupID);
$post->GroupID = $part[0] . '-' . ($part[1] + 1);
} else {
$post->GroupID = 'POST-1';
}
$post->save();
return response()->json($post);
}
}
答案 3 :(得分:0)
当您使用return语句时,执行会停止,因此您的增量永远不会发生。将return语句放在最后。
答案 4 :(得分:0)
ObservableValue
$ groupID = Post :: pluck('GroupID')-> last(); 这将为您提供列表中的最后一个groupID(按ID升序排列)。
$ post-> GroupID ='POST-'。 $ groupID + 1; 在将其保存到表中之前,将增加该值。