Laravel 未填充表单模型绑定一对一关系
Laravel Form Model Binding One to One Relationships Not Populated
条款table:
- term_id
- 姓名
- 鼻涕虫
Term_taxonomy table:
- term_taxonomy_id
- term_id
- 描述
我的学期模型:
public function TermTaxonomy(){
return $this->hasOne('TermTaxonomy');
}
我的 TermTaxonomy 模型:
public function Term(){
return $this->belongsTo('Term');
}
我的控制器
public function edit($id)
{
$categories = Term::with(['TermTaxonomy' => function($q){
$q->select('term_id', 'description');
}])->get(['term_id', 'name', 'slug']);
$category = Term::with(['TermTaxonomy' => function($q){
$q->select('term_id', 'description');
}])->find($id, ['term_id', 'name', 'slug']);
return View::make('qhymchildz.backend.posts.categories', compact('category', 'categories'));
}
我的观点
@if (isset($category))
{{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }}
@else
{{ Form::open(['route' => 'admin_posts_categories_store'])}}
@endif
{{ Form::label('name', 'Name') }}
<span data-tooltip aria-haspopup="true" class="has-tip radius" title="Category name for your posts.">
{{ Form::text('name', '', ['placeholder' => 'Category name here']) }}
@if ($errors->has('name')) <small class="error"> {{ $errors->first('name') }} </small> @endif
</span>
{{ Form::label('slug', 'Slug') }}
<span data-tooltip aria-haspopup="true" class="has-tip radius" title="Slug or URL for your category.">
{{ Form::text('slug', '', ['placeholder' => 'Slug here']) }}
@if ($errors->has('slug')) <small class="error"> {{ $errors->first('slug') }} </small> @endif
</span>
{{ Form::label('description', 'Description') }}
{{ Form::textarea('description', '', ['placeholder' => 'Category description here', 'size' => '50x5']) }}
@if (!isset($category))
{{ Form::submit('Add New Category', ['class' => 'radius button']) }}
@else
{{ Form::submit('Update', ['class' => 'radius button']) }}
@endif
{{ Form::close() }}
并且所有输入文本都未填充,已经尝试了很多谷歌搜索方法但没有任何效果,那么如何在我的输入文本和文本区域中填充数据?我用它来编辑功能。
谢谢,我是 laravel 的新人。任何帮助将不胜感激。
首先,第二个参数必须是 null
,这样它实际上会使用您模型中的值:
{{ Form::text('name', null, ['placeholder' => 'Category name here']) }}
要使用来自相关模型的 属性,您可以使用这个:
{{ Form::textarea('TermTaxonomy[description]', null, ['placeholder' => 'Category description here', 'size' => '50x5']) }}
注意没有必要在开头做一个@if(isset($category))
。 Form::model
方法将自行处理不存在的模型。这足够了:
{{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }}
我也遇到了同样的问题,不过我是这样处理的:
{!! Form::text('firstname', $user->profile->firstname, ['class' => 'form-control']) !!}
以我为例:
用户 belongsTo('App\Profile')
,
简介 hasOne('App\profile')
随便想想。希望对您有所帮助!
在我的例子中,没有在 Textarea 上渲染模型值。
所以我给出的值不是 null,而是这样的:
{{ Form::textarea('TermTaxonomy[description]', $category->TermTaxonomy['description'], ['placeholder' => 'Category description here', 'size' => '50x5']) }}
希望这对某人也有帮助。
条款table:
- term_id
- 姓名
- 鼻涕虫
Term_taxonomy table:
- term_taxonomy_id
- term_id
- 描述
我的学期模型:
public function TermTaxonomy(){
return $this->hasOne('TermTaxonomy');
}
我的 TermTaxonomy 模型:
public function Term(){
return $this->belongsTo('Term');
}
我的控制器
public function edit($id)
{
$categories = Term::with(['TermTaxonomy' => function($q){
$q->select('term_id', 'description');
}])->get(['term_id', 'name', 'slug']);
$category = Term::with(['TermTaxonomy' => function($q){
$q->select('term_id', 'description');
}])->find($id, ['term_id', 'name', 'slug']);
return View::make('qhymchildz.backend.posts.categories', compact('category', 'categories'));
}
我的观点
@if (isset($category))
{{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }}
@else
{{ Form::open(['route' => 'admin_posts_categories_store'])}}
@endif
{{ Form::label('name', 'Name') }}
<span data-tooltip aria-haspopup="true" class="has-tip radius" title="Category name for your posts.">
{{ Form::text('name', '', ['placeholder' => 'Category name here']) }}
@if ($errors->has('name')) <small class="error"> {{ $errors->first('name') }} </small> @endif
</span>
{{ Form::label('slug', 'Slug') }}
<span data-tooltip aria-haspopup="true" class="has-tip radius" title="Slug or URL for your category.">
{{ Form::text('slug', '', ['placeholder' => 'Slug here']) }}
@if ($errors->has('slug')) <small class="error"> {{ $errors->first('slug') }} </small> @endif
</span>
{{ Form::label('description', 'Description') }}
{{ Form::textarea('description', '', ['placeholder' => 'Category description here', 'size' => '50x5']) }}
@if (!isset($category))
{{ Form::submit('Add New Category', ['class' => 'radius button']) }}
@else
{{ Form::submit('Update', ['class' => 'radius button']) }}
@endif
{{ Form::close() }}
并且所有输入文本都未填充,已经尝试了很多谷歌搜索方法但没有任何效果,那么如何在我的输入文本和文本区域中填充数据?我用它来编辑功能。
谢谢,我是 laravel 的新人。任何帮助将不胜感激。
首先,第二个参数必须是 null
,这样它实际上会使用您模型中的值:
{{ Form::text('name', null, ['placeholder' => 'Category name here']) }}
要使用来自相关模型的 属性,您可以使用这个:
{{ Form::textarea('TermTaxonomy[description]', null, ['placeholder' => 'Category description here', 'size' => '50x5']) }}
注意没有必要在开头做一个@if(isset($category))
。 Form::model
方法将自行处理不存在的模型。这足够了:
{{ Form::model($category, ['route' => ['admin_posts_categories_update', $category->term_id], 'method' => 'PATCH']) }}
我也遇到了同样的问题,不过我是这样处理的:
{!! Form::text('firstname', $user->profile->firstname, ['class' => 'form-control']) !!}
以我为例:
用户 belongsTo('App\Profile')
,
简介 hasOne('App\profile')
随便想想。希望对您有所帮助!
在我的例子中,没有在 Textarea 上渲染模型值。
所以我给出的值不是 null,而是这样的:
{{ Form::textarea('TermTaxonomy[description]', $category->TermTaxonomy['description'], ['placeholder' => 'Category description here', 'size' => '50x5']) }}
希望这对某人也有帮助。