skip to Main Content

I am making a site for drawing in laravel and I don’t know how to make a save button for my drawings,all I need to save for now are the name of the canvas and the size of it,one problem is that the name is stored in an input and I don’t know how to access it,the other what do I return after saving it

<a href="{{route('canvas.save',['size' =>$size])}}">

This is how I transfer the size,but the name I don’t know yet how to transfer

this is the input where I store it

<input oninput="ChangeInput(this.value)" value="Canvas" type="text" name="title" id="title">

this is how I add the data to the table

    public function createDrawing($name,$size,$id){
        return Drawing::create([
            'name' => $name, //the name of the canvas
            'canvas_size' => $size,
            'users_id' => $id //this is a foreign key
        ]);
    }

the structure of the route is

Route::get('canvasSave/{size}',[CustomAuthController::class,'SaveDrawing'])->name('canvas.save');

    public function SaveDrawing($size){
        $check = $this->createDrawing(...,$size,1); 

//how do I get the name here from the input
      
}

What do I return after creating the drawing was stored in the table,my idea was to return a Partial view like a Popup but still don’t know how to do it,
I just dont understand how to save it via routes and I’m confused,your help would help a lot

2

Answers


  1. Chosen as BEST ANSWER

    So I managed to do the saving like this in the controller

    public function createDrawing(array $data){
        return Drawing::create([
            'name' => $data['title'],
            'canvas_size' => $data['size'],
            'users_id' => $data['users_id']
        ]);
    }
    public function SaveDrawing(Request $request){
        $data = $request->all();
        $data['users_id'] = Auth::id();
        $check = $this->createDrawing($data);
        return View('main.introduction');
    }
    

    I did the route into the post like you said and things got clearer after I made the html in form

    route:

    Route::post('canvasSave',[CustomAuthController::class,'SaveDrawing'])->name('canvas.save');
    

    HTML:

                <form action="{{route('canvas.save')}}" method="POST">
                    @csrf
                    <input oninput="ChangeInput(this.value)" value="Canvas" type="text" name="title" id="title">
                    <input type="hidden" name="size" value="{{$size}}">
                    <button type="submit">Save</button>
                </form>
    

    after the save it just returns back to the main page


  2. Use Route::post and pass all the data as a payload (body) on the request. Τhe easiest way is to add them in a form and the size can be a hidden input with the value or use a javascript ajax method to pass them as you like.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search