public function create_belongsToMany_relation_with(Request $request, Table $toModel) { $model = $this; $devis = Devis::find($request->devis_id); $pivotTable = Table::findOrCreate_pivotTable($request, $model, $toModel); $from_field_name = snake_case($model->model) . '_id'; $to_field_name = snake_case($toModel->model) . '_id'; $field = $model->findOrCreate(['name' => 'id', 'is_primary' => true, 'is_incrementable' => true, 'field_type_id' => 1]); $fieldPivot = $pivotTable->findOrCreate(['name' => $from_field_name, 'is_primary' => true, 'is_unsigned' => true, 'is_incrementable' => false, 'field_type_id' => 1]); $toField = $toModel->findOrCreate(['name' => 'id', 'is_primary' => true, 'is_incrementable' => true, 'field_type_id' => 1]); $toFieldPivot = $pivotTable->findOrCreate(['name' => $to_field_name, 'is_primary' => true, 'is_unsigned' => true, 'is_incrementable' => false, 'field_type_id' => 1]); $field->relations()->attach($fieldPivot, ['from_field_name' => $field->name, 'to_field_name' => $fieldPivot->name, 'laravel_name' => $request->laravel_name, 'to_model' => $toModel->id, 'on_field_id' => $toField->id, 'pivot_table_id' => $pivotTable->id, 'pivot_table_name' => $pivotTable->name]); $toField->relations()->attach($toFieldPivot, ['from_field_name' => $toField->name, 'to_field_name' => $toFieldPivot->name, 'laravel_name' => $request->laravel_name, 'to_model' => $model->id, 'on_field_id' => $field->id, 'pivot_table_id' => $pivotTable->id, 'pivot_table_name' => $pivotTable->name]); //dd($from_field_name); // if ( ! $field->has_relation($toField)) { // // var_dump('creation de la erlation'); // //$field->relations()->attach($toField, ['from_field_name'=>$field->name, 'to_field_name'=>$toField->name, 'laravel_name'=>$request->laravel_name, 'pivot_table_name'=>'']); // } // else { // Flash::error('A relation Already exists beetween this 2 fields'); // return false; // } }