gpt4 book ai didi

mysql - 在 Controller 的存储方法中添加两个查询

转载 作者:行者123 更新时间:2023-11-29 11:43:24 24 4
gpt4 key购买 nike

我有这个优惠迁移表:

public function up()
{
Schema::create('offers', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->integer('article_id')->unsigned();
$table->integer('price');
$table->string('comment');
$table->timestamps();
$table->string('key');
$table->string('title');
$table->timestamp('start');

$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');

$table->foreign('article_id')
->references('id')
->on('articles')
->onDelete('cascade');
});
}

我的模型也是如此:

class Offer extends Model
{
//
protected $fillable = [
'price',
'comment',
'article_id',
'key',
'start'
];

protected $dates = [
'start'
];

public function setStartAttribute($date){
$this->attributes['start']= Carbon::createFromFormat('m/d/Y h:i a', $date);
}
public function getStartAttribute($date){
return (new Carbon($date))->toRfc2822String();
}

public function user(){
return $this->belongsTo('App\User');
}

public function article(){
return $this->belongsTo('App\Article');
}
}

现在在 Controller 我只有存储功能:

public function store(Requests\OfferRequest $request)
{

$offer = new Offer($request->all());

Auth::user()->offer()->save($offer);

Alert::success('Offer is succesfully added!', 'Good job!')->persistent("Close");

return Redirect::back();

}

现在我也有同款MAXOFFER了。迁移和模型也是如此。

我想要做的是在 OffersController 存储方法中添加一个查询,该查询将检查 maxoffers 表中是否存在 start ,如果没有,则添加包含请求数据的新行,但如果存在行使用相同的start值,然后检查price,如果price高于当前值,则更新该行...

请帮我在 OfferController 的商店函数中编写该查询...

最佳答案

以下查询是通过猜测您在 Maxoffer 模型中存在关系 maxoffer 来创建的。

$maxoffer = Auth::user()->maxoffer()
->where('address_id', $request->input('address_id'))
->where('start', $request->input('start'))->first();

if($maxoffer==null)
{
Ath::user()->maxoffer()->create($request->all());
}
else
{
if($maxoffer->price < $request->input('price'))
{
$newOffer = Auth::user()->maxoffer()
->where('address_id', $request->input('address_id'))
->where('start', $request->input('start'))
->update(['price'=>$request->input('price')]);
}
}

关于mysql - 在 Controller 的存储方法中添加两个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com