Php 部署到服务器后更新数据库时出错。拉维尔5号
我有一个表单,它将数据添加到两个不同的表(文章和交易)。一篇文章有很多交易。交易只有一个条款。用户在创建和编辑表单上输入多个具有不同DealName的交易。我可以在本地/vagrant开发环境中很好地更新数据库的“deals”部分,但当我在我的实时站点上尝试时,会出现“从空值创建默认对象”错误。 它说问题出在myPhp 部署到服务器后更新数据库时出错。拉维尔5号,php,mysql,laravel,laravel-5,Php,Mysql,Laravel,Laravel 5,我有一个表单,它将数据添加到两个不同的表(文章和交易)。一篇文章有很多交易。交易只有一个条款。用户在创建和编辑表单上输入多个具有不同DealName的交易。我可以在本地/vagrant开发环境中很好地更新数据库的“deals”部分,但当我在我的实时站点上尝试时,会出现“从空值创建默认对象”错误。 它说问题出在myArticles Controller的update功能中 我用的是拉威尔5号 文章表有:id(primary),标题,图像,说明,地址 交易表有:id(主),dealname,arti
Articles Controller的update
功能中
我用的是拉威尔5号
文章表有:id(primary)
,标题
,图像
,说明
,地址
交易表有:id(主)
,dealname
,article\u id(索引)
,dayID
在我的开发环境和live环境之间,我能看到的唯一区别是“Deals”表上的索引(article_id)在PHPMyAdmin中没有一个键图标。但是外键r/ship设置正确
您可以在此处看到所有代码:
文章控制器-更新
public function update(ArticleRequest $request, $id)
{
$article = Article::findOrFail($id);
if( $request->hasFile('image') ){
// photo saving stuff.
}
$article->update($request->all());
for($i = 0; $i < sizeof($request->input('dealname')); $i++) {
//Error is supposedly on the next line.
$article->deals->where('dayID',($i + 1))->first()->dealname = $request->input('dealname')[$i];
$article->deals->where('dayID',($i + 1))->first()->save();
}
return redirect('/');
}
交易模式
class Deal extends Model
{
public function article()
{
return $this->belongsTo('App\Article')->withTimestamps();
}
protected $fillable = array('dealname', 'article_id', 'dayID');
}
最后,我不得不将ArticlesController更新函数中的代码更改为:
for($i = 0; $i < sizeof($request->input('dealname')); $i++) {
$deal = $article->deals()->where('dayID', $i + 1)->first();
$deal->dealname = $request->input('dealname')[$i];
$deal->save();
}
return redirect('/');
}
for($i=0;$iinput('dealname'));$i++){
$deal=$article->deals()->where('dayID',$i+1)->first();
$deal->dealname=$request->input('dealname')[$i];
$deal->save();
}
返回重定向('/');
}
请注意deals()上的括号
class Deal extends Model
{
public function article()
{
return $this->belongsTo('App\Article')->withTimestamps();
}
protected $fillable = array('dealname', 'article_id', 'dayID');
}
for($i = 0; $i < sizeof($request->input('dealname')); $i++) {
$deal = $article->deals()->where('dayID', $i + 1)->first();
$deal->dealname = $request->input('dealname')[$i];
$deal->save();
}
return redirect('/');
}