public function addRelationship(Request $request)
    {
        $relationshipField = $this->getRelationshipField($request);

        if (!class_exists($request->relationship_model)) {
            return back()->with([
                'message'    => 'Model Class '.$request->relationship_model.' does not exist. Please create Model before creating relationship.',
                'alert-type' => 'error',
            ]);
        }

        try {
            DB::beginTransaction();

            $relationship_column = $request->relationship_column_belongs_to;
            if ($request->relationship_type == 'hasOne' || $request->relationship_type == 'hasMany') {
                $relationship_column = $request->relationship_column;
            }

            // Build the relationship details
            $relationshipDetails = [
                'model'       => $request->relationship_model,
                'table'       => $request->relationship_table,
                'type'        => $request->relationship_type,
                'column'      => $relationship_column,
                'key'         => $request->relationship_key,
                'label'       => $request->relationship_label,
                'pivot_table' => $request->relationship_pivot,
                'pivot'       => ($request->relationship_type == 'belongsToMany') ? '1' : '0',
                'taggable'    => $request->relationship_taggable,
            ];

            $className = Voyager::modelClass('DataRow');
            $newRow = new $className();

            $newRow->data_type_id = $request->data_type_id;
            $newRow->field = $relationshipField;
            $newRow->type = 'relationship';
            $newRow->display_name = $request->relationship_table;
            $newRow->required = 0;

            foreach (['browse', 'read', 'edit', 'add', 'delete'] as $check) {
                $newRow->{$check} = 1;
            }

            $newRow->details = $relationshipDetails;
            $newRow->order = intval(Voyager::model('DataType')->find($request->data_type_id)->lastRow()->order) + 1;

            if (!$newRow->save()) {
                return back()->with([
                    'message'    => 'Error saving new relationship row for '.$request->relationship_table,
                    'alert-type' => 'error',
                ]);
            }

            DB::commit();

            return back()->with([
                'message'    => 'Successfully created new relationship for '.$request->relationship_table,
                'alert-type' => 'success',
            ]);
        } catch (\Exception $e) {
            DB::rollBack();

            return back()->with([
                'message'    => 'Error creating new relationship: '.$e->getMessage(),
                'alert-type' => 'error',
            ]);
        }
    }
public function addRelationship(Request $request)
    {
        $relationshipField = $this->getRelationshipField($request);

        if (!class_exists($request->relationship_model)) {
            return back()->with([
                'message'    => 'Model Class '.$request->relationship_model.' does not exist. Please create Model before creating relationship.',
                'alert-type' => 'error',
            ]);
        }

        try {
            DB::beginTransaction();

            $relationship_column = $request->relationship_column_belongs_to;
            if ($request->relationship_type == 'hasOne' || $request->relationship_type == 'hasMany') {
                $relationship_column = $request->relationship_column;
            }

            // Build the relationship details
            $relationshipDetails = [
                'model'       => $request->relationship_model,
                'table'       => $request->relationship_table,
                'type'        => $request->relationship_type,
                'column'      => $relationship_column,
                'key'         => $request->relationship_key,
                'label'       => $request->relationship_label,
                'pivot_table' => $request->relationship_pivot,
                'pivot'       => ($request->relationship_type == 'belongsToMany') ? '1' : '0',
                'taggable'    => $request->relationship_taggable,
            ];

            $className = Voyager::modelClass('DataRow');
            $newRow = new $className();

            $newRow->data_type_id = $request->data_type_id;
            $newRow->field = $relationshipField;
            $newRow->type = 'relationship';
            $newRow->display_name = $request->relationship_table;
            $newRow->required = 0;

            foreach (['browse', 'read', 'edit', 'add', 'delete'] as $check) {
                $newRow->{$check} = 1;
            }

            $newRow->details = $relationshipDetails;
            $newRow->order = intval(Voyager::model('DataType')->find($request->data_type_id)->lastRow()->order) + 1;

            if (!$newRow->save()) {
                return back()->with([
                    'message'    => 'Error saving new relationship row for '.$request->relationship_table,
                    'alert-type' => 'error',
                ]);
            }

            DB::commit();

            return back()->with([
                'message'    => 'Successfully created new relationship for '.$request->relationship_table,
                'alert-type' => 'success',
            ]);
        } catch (\Exception $e) {
            DB::rollBack();

            return back()->with([
                'message'    => 'Error creating new relationship: '.$e->getMessage(),
                'alert-type' => 'error',
            ]);
        }
    }
public function addRelationship ( Request $ request ) { $ relationshipField = $ this -> getRelationshipField ( $ request ) ; if ( ! class_exists ( $ request -> relationship_model ) ) { return back ( ) -> with ( [ 'message' => 'Model Class ' . $ request -> relationship_model . ' does not exist. Please create Model before creating relationship.' , 'alert-type' => 'error' , ] ) ; } try { DB :: beginTransaction ( ) ; $ relationship_column = $ request -> relationship_column_belongs_to ; if ( $ request -> relationship_type == 'hasOne' || $ request -> relationship_type == 'hasMany' ) { $ relationship_column = $ request -> relationship_column ; } // Build the relationship details $ relationshipDetails = [ 'model' => $ request -> relationship_model , 'table' => $ request -> relationship_table , 'type' => $ request -> relationship_type , 'column' => $ relationship_column , 'key' => $ request -> relationship_key , 'label' => $ request -> relationship_label , 'pivot_table' => $ request -> relationship_pivot , 'pivot' => ( $ request -> relationship_type == 'belongsToMany' ) ? '1' : '0' , 'taggable' => $ request -> relationship_taggable , ] ; $ className = Voyager :: modelClass ( 'DataRow' ) ; $ newRow = new $ className ( ) ; $ newRow -> data_type_id = $ request -> data_type_id ; $ newRow -> field = $ relationshipField ; $ newRow -> type = 'relationship' ; $ newRow -> display_name = $ request -> relationship_table ; $ newRow -> required = 0 ; foreach ( [ 'browse' , 'read' , 'edit' , 'add' , 'delete' ] as $ check ) { $ newRow -> { $ check } = 1 ; } $ newRow -> details = $ relationshipDetails ; $ newRow -> order = intval ( Voyager :: model ( 'DataType' ) -> find ( $ request -> data_type_id ) -> lastRow ( ) -> order ) + 1 ; if ( ! $ newRow -> save ( ) ) { return back ( ) -> with ( [ 'message' => 'Error saving new relationship row for ' . $ request -> relationship_table , 'alert-type' => 'error' , ] ) ; } DB :: commit ( ) ; return back ( ) -> with ( [ 'message' => 'Successfully created new relationship for ' . $ request -> relationship_table , 'alert-type' => 'success' , ] ) ; } catch ( \ Exception $ e ) { DB :: rollBack ( ) ; return back ( ) -> with ( [ 'message' => 'Error creating new relationship: ' . $ e -> getMessage ( ) , 'alert-type' => 'error' , ] ) ; } }
Add Relationship.

@param Request $request
Add Relationship .