import not compatible with modules

This commit is contained in:
denisdulici 2019-04-04 17:54:03 +03:00
parent 4cb738f497
commit e44146efaa
3 changed files with 24 additions and 11 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Controllers\Common; namespace App\Http\Controllers\Common;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use Module;
class Import extends Controller class Import extends Controller
{ {
@ -17,6 +18,12 @@ class Import extends Controller
{ {
$path = $group . '/' . $type; $path = $group . '/' . $type;
return view('common.import.create', compact('group', 'type', 'path')); if (Module::findByAlias($group) instanceof \Nwidart\Modules\Module) {
$namespace = $group . '::';
} else {
$namespace = '';
}
return view('common.import.create', compact('group', 'type', 'path', 'namespace'));
} }
} }

View File

@ -8,12 +8,12 @@ use Illuminate\Validation\ValidationException;
class Import class Import
{ {
public static function createFromFile($import, $slug) public static function createFromFile($import, $slug, $namespace = 'App')
{ {
$success = true; $success = true;
// Loop through all sheets // Loop through all sheets
$import->each(function ($sheet) use (&$success, $slug) { $import->each(function ($sheet) use (&$success, $slug, $namespace) {
if (!static::isValidSheetName($sheet, $slug)) { if (!static::isValidSheetName($sheet, $slug)) {
$message = trans('messages.error.import_sheet'); $message = trans('messages.error.import_sheet');
@ -22,7 +22,7 @@ class Import
return false; return false;
} }
if (!$success = static::createFromSheet($sheet, $slug)) { if (!$success = static::createFromSheet($sheet, $slug, $namespace)) {
return false; return false;
} }
}); });
@ -30,12 +30,12 @@ class Import
return $success; return $success;
} }
public static function createFromSheet($sheet, $slug) public static function createFromSheet($sheet, $slug, $namespace = 'App')
{ {
$success = true; $success = true;
$model = '\App\Models\\' . $slug; $model = '\\' . $namespace . '\Models\\' . $slug;
$request = '\App\Http\Requests\\' . $slug; $request = '\\' . $namespace . '\Http\Requests\\' . $slug;
if (!class_exists($model) || !class_exists($request)) { if (!class_exists($model) || !class_exists($request)) {
return false; return false;
@ -82,11 +82,17 @@ class Import
{ {
$t = explode('\\', $slug); $t = explode('\\', $slug);
if (empty($t[1])) { if (count($t) == 1) {
return false; $title = $slug;
} else {
if (empty($t[1])) {
return false;
}
$title = $t[1];
} }
if ($sheet->getTitle() != str_plural(snake_case($t[1]))) { if ($sheet->getTitle() != str_plural(snake_case($title))) {
return false; return false;
} }

View File

@ -1,6 +1,6 @@
@extends('layouts.admin') @extends('layouts.admin')
@section('title', trans('import.title', ['type' => trans_choice('general.' . $type, 2)])) @section('title', trans('import.title', ['type' => trans_choice($namespace . 'general.' . snake_case(camel_case($type)), 2)]))
@section('content') @section('content')
<div class="box box-success"> <div class="box box-success">