【发布时间】:2018-05-02 06:39:21
【问题描述】:
我注意到一些 Laravel 应用程序出现了奇怪的行为。
当我跑步时让我们说
Users::where("id",$request->input("id"))->update($request->input());
有时它会很好。在其他情况下,我得到 p>
Unknown column '_token' in 'field list'
所以有时它只读取$fillable 参数中设置的内容,而其他时候它会从$request->input() 中获取所有内容。我一直在比较不同的模型,没有发现任何区别。我知道我可以通过使用$request->only([]) 方法来解决它,但是其他人是否有或遇到过这个问题并且可能知道它背后的原因?
编辑
这是我的model.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class BookingRequests extends Model
{
//
protected $fillable = array(
"account_id",
"quote_id",
"booking_id",
"website_id",
"color",
"custom_group_name",
"is_confirmed",
"ready_to_issue",
"created_by",
);
/**
* Return Quote
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function Quote(){
return $this->belongsTo('App\Quotes',"quote_id","id");
}
}
这是我的控制器
/**
* Update Booking Reques
* @param Request $request
*/
public function update(Request $request){
/**
* Validate
*/
$this->validate($request,array(
"id" => "required"
));
/**
* Update
*/
BookingRequests::where("id",$request->input("id"))->update($request->input());
/**
* Return
*/
return redirect()->back()->with("success","Booking updated");
}
这是在 Laravel 5.3.31 上运行的
【问题讨论】:
-
你如何调试这个?至少记录请求数据,这样你就知道你从那里得到了什么。可能有成千上万的 laravel 使用
Model->update部署,如果您是第一个发现导致您所描述的错误的错误,我会真的感到惊讶。更有可能你用错了。请告诉我们一种重现此问题的方法并告诉我们您是如何调试的。
标签: laravel laravel-5 eloquent laravel-5.3 csrf