我有一个系统,您可以在其中创建不同类型的独特文档。例如,有一个文档名为Project Identified,它需要某些输入。最初,我为每个独特的文档类型都有一个数据库表,但这很快就变得杂乱无章。因此,我创建了一个更通用的数据库结构,并提出了以下内容

所以,我创建了一个项目。在项目显示页面中,我可以选择要创建的文档类型,例如
<li>{!! link_to_route('projects.documents.create', 'Project Identified', array($project->id, 'documentType' => 'projectIdentified')) !!}</li>现在,如果我选择创建一个项目标识文档,它将使用通用文档控制器来处理。因为到路由的链接有一个documentType参数,所以我可以从url中获取该参数的值。因此,在我的文档控制器创建函数中,我执行以下操作来显示文档的正确视图
public function create(Project $project)
{
$documentType = $_GET["documentType"];
if($documentType == "projectIdentified") {
return View::make('projectIdentifiedDoc.create', compact('project'));
}
}此视图有一个已绑定的窗体
{!! Form::model(new App\Document, [
'class'=>'form-horizontal',
'route' => ['projects.documents.store', $project->id]
]) !!}但是,在文档控制器存储函数中,我再次需要获取documentType。如何在表单模型中传递此参数?另外,这是正确的方法还是有更有效的方法?
谢谢
发布于 2016-01-05 02:00:36
你读过关于关系的文档吗?
https://laravel.com/docs/5.2/eloquent-relationships
您需要定义模型中的关系。
因此,如果一个文档在您的文档模型中只有一个documentType,那么您应该定义
public function documentType()
{
return $this->hasOne('App\documentType');
}不同类型的关系,如何定义它们,然后如何访问数据,都有很好的文档记录。
https://stackoverflow.com/questions/34594317
复制相似问题