Как загрузить данные более одного раза, используя Laravel - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать систему, в которой администратор создает шаблон проекта, а затем шаблоны для текста (ограничение по символам) и изображений (высота / ширина и расширение файла)

Когда он у меня есть шаблон, код работает отлично, и я даже могу загрузить несколько текстов / изображений только с одним шаблоном.

Но проблема возникает, когда я создаю второй шаблон текста / изображения, сам шаблон создается без проблем, но когда я хочу загрузить что-то, используя этот шаблон, хорошо ...

Error message

Проблема в этой части кода:

Code with the error

Вот полные коды:

Создание шаблоны:

Textos_DescripcionController. php (контроллер текстового шаблона):

public function store(Request $request){

        $request->validate([
            'nombre_texto' => ['required'],
            'min' => ['required'],
            'max' => ['required'],
        ]);

        Textos_Descripcion::create($request->all());

        $data_txt = DB::table('textos__descripcions')
                ->max('id');

        $data_proyecto = $_POST['proyecto_id'];

        //dd($data_proyecto);

        Textos_Descripcion_Plantillas::insert(['proyecto_id' => $data_proyecto, 'texto_descripcion_id' => $data_txt]);

        return redirect('/profile/' . auth()->user()->id);
    }

TextosController. php (тексты сами по себе):

public function store(Request $request){

        $plantilla_id = $_POST['id_descr'];

        //Obtenemos ancho y alto de la plantilla

        $min = DB::table('textos__descripcions')
                ->select('min')
                ->where('id' , '=', $plantilla_id)
                ->first();

        $min_valor = $min->min;

        $max = DB::table('textos__descripcions')
                ->select('max')
                ->where('id' , '=', $plantilla_id)
                ->first();

        $max_valor = $max->max;

        //ahora obtenemos los ancho y alto de la imagen

        $largo = strlen($_POST["texto"]);


        //ahora comparamos

        if($min_valor > $largo || $max_valor < $largo){

                echo "El texto no cumple con los estandares, la imagen debe ser desde " . $min->min . " hasta " . $max->max . "y tu texto tiene " . $largo . " caracteres ";

                dd($largo);

                return redirect('/profile/' . auth()->user()->id);
        };

        $paro = "Aqui toy";



        echo "Succes, La imagen cumple con los estandares, la imagen debe ser desde " . $min->min . " hasta " . $max->max . "y tu texto tiene " . $largo . " caracteres ";

        $request->validate([
            'caption' => ['required'],
            'texto' => ['required'],
            'id_descr' => ['required'],
        ]);

        //dd($paro);

        Textos::create($request->all()); //

        //Datos a tabla intermedia

        $data_img = DB::table('textos__descripcion__plantillas')
                ->select('id')
                ->where('id' ,'=', $plantilla_id)
                ->first();

        $data_img_valor = $data_img->id;

        $id_proyecto = DB::table('proyectos')
                ->select('id')
                ->where('id','=', $data_img_valor)
                ->first();

        $id_proyecto_valor = $id_proyecto->id; //I'm getting problems here

        $id_txt = DB::table('textos')
                ->max('id');


        Textos_Proyectos::insert(['proyectos_id' => $id_proyecto_valor , 'textos_id' => $id_txt]);

        return redirect('/profile/' . auth()->user()->id);
    }

Я использовал dd () прямо перед строкой кода, которая вызывает у меня проблемы, которые дали ноль. И для меня это не имеет смысла, потому что он работает с 1-м шаблоном, когда я использую dd (), я получаю идентификатор того, что я загружаю:

dd() of the 1st upload

Почему это происходит?

Я прошу прощения, если вопрос слишком расплывчатый, если в нем отсутствуют детали, укажите его

РЕДАКТИРОВАТЬ: Я решил изменить first () для get () в строка, которая вызывает у меня проблемы, и я получил пустой массив

...