lundi 4 janvier 2016

Laravel 5 - generic document management

I have a system where you can create different types of unique documents. For instance, one document is called Project Identified and this expects certain inputs. Originally, I had a database table for each unique document type, but this was getting messy fast. So, I created a database structure that was more generic, and came up with the following Database design

So, I create a project. Within the projects show page, I can select the type of document I want to create e.g.

<li>{!! link_to_route('projects.documents.create', 'Project Identified', array($project->id, 'documentType' => 'projectIdentified')) !!}</li>

Now if I select to create a Project Identified document, it uses the generic Document Controller to handle things. Because the link to route has a documentType param, I can grab the value of this from the url. As such, in my Document Controllers create function, I am doing the following to display the correct view for the document

public function create(Project $project)
{
    $documentType = $_GET["documentType"];

    if($documentType == "projectIdentified") {
        return View::make('projectIdentifiedDoc.create', compact('project'));
    }
}

This view has a form which is binded

{!! Form::model(new App\Document, [
    'class'=>'form-horizontal',
    'route' => ['projects.documents.store', $project->id]
]) !!}

However, within the document controllers store function, I once again need to get the documentType. How can I pass this within the forms model? Also, is this the correct way to do this or is there a more efficient way?

Thanks



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/1O6o1Mn
via IFTTT

Aucun commentaire:

Enregistrer un commentaire