Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Zoul's avatar
Level 5

Array to string conversion when saving to DB

Hi all, I have Array to string conversion error, and i made some modification but it did'not work, any help would be much appreciated !

Here is my migration for the class events

    public function up()
    {
        Schema::create('events', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->longText('title')->nullable();
            $table->longText('description')->nullable();
            $table->longText('organizer')->nullable();
            $table->longText('address')->nullable();
            $table->longText('location')->nullable();
            $table->string('phone')->nullable();
            $table->string('email')->nullable();
            $table->dateTime('start_date')->nullable();
            $table->dateTime('finish_date')->nullable();
            $table->string('start_time')->nullable();
            $table->string('finish_time')->nullable();
            $table->string('photo');
            $table->boolean('is_active')->nullable();
            $table->timestamps();
        });
    }

In controller

    public function store(Request $request)
    { 
            $event = new Event();
            if (!$request->has('is_active'))
            $request->request->add(['is_active' => 0]);
            else
            $request->request->add(['is_active' => 1]);
    
            $fileName = "";
            if ($request->hasFile('photo')) {
               $image = $request->file('photo');
               $fileName = $image->getClientOriginalName();
               $image_resize = Image::make($image->getRealPath())->resize(510, 300);
               $image_resize->save(public_path('images/events/'. $fileName));
            }

            $event->start_date = $request->start_date;
            $event->finish_date = $request->finish_date;
            $event->start_time = $request->start_time;
            $event->finish_time = $request->finish_time;
            $event->email = $request->email;
            $event->phone = $request->phone;
           
            $event->photo = $fileName;
            $event->title = ['en' => $request->title, 'ar' => $request->title_ar, 'fr' => $request->title_fr];
            $event->description = ['en' => $request->description, 'ar' => $request->description_ar, 'fr' => $request->description_fr];
            $event->organizer = ['en' => $request->organizer, 'ar' => $request->organizer_ar, 'fr' => $request->organizer_fr];
            $event->address = ['en' => $request->address, 'ar' => $request->address_ar, 'fr' => $request->address_fr];
            $event->location = ['en' => $request->location, 'ar' => $request->location_ar, 'fr' => $request->location_fr];
      
    
            $event->save();
            return redirect()->route('all.event')->with(['success' => 'Saved Successfully']);
  
    }

In view

  <form action="{{ route('store.event') }}" method="POST" enctype="multipart/form-data" novalidate>
                @csrf  
        
                    <input type="hidden" name="id" value="">
                <div class="row">
                
                    </div>
                    </div>

                    <div class="row">

                   

                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Title ar</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="title_ar">
                            </div>
                            @error('title_ar')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                    
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Title en</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="title">
                            </div>
                            @error('title')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-4">
                            <div class="controls  ">
                                <label class="summ-label">Title fr</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder=" " name="title_fr">
                            </div>
                            @error('title_fr')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Organizer ar</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="organizer_ar">
                            </div>
                            @error('organizer_ar')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                    
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Organizer en</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="organizer">
                            </div>
                            @error('organizer')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-4">
                            <div class="controls  ">
                                <label class="summ-label">Organizer fr</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder=" " name="organizer_fr">
                            </div>
                            @error('organizer_fr')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                        
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Location ar</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="location_ar">
                            </div>
                            @error('location_ar')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                    
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Location en</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="location">
                            </div>
                            @error('location')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-4">
                            <div class="controls  ">
                                <label class="summ-label">Location fr</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder=" " name="location_fr">
                            </div>
                            @error('location_fr')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Address ar</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="address_ar">
                            </div>
                            @error('address_ar')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                    
                        <div class="form-group col-md-4">
                            <div class="controls">
                                <label for="complaintinput1">Address en</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="address">
                            </div>
                            @error('address')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-4">
                            <div class="controls  ">
                                <label class="summ-label">Address fr</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder=" " name="address_fr">
                            </div>
                            @error('address_fr')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                
                        <div class="form-group col-md-6">
                            <div class="controls">
                                <label for="complaintinput1">Phone</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder="" name="phone">
                            </div>
                            @error('phone')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-6">
                            <div class="controls  ">
                                <label class="summ-label">Email</label>
                                <input type="text" id="complaintinput1" class="form-control round" placeholder=" " name="email">
                            </div>
                            @error('email')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-6">
                            <div class="form-group">
                                <label class="summ-label">Start Date</label>
                                 <input type="date" class="form-control input-lg" id="dropPrimaryColor" placeholder="Date Dropper" name="start_date">
                            </div>
                            @error('start_date')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>
                       

                        <div class="form-group col-md-6">
                            <div class="controls ">
                                <label class="summ-label">Finish Date</label>
                                <input type="date" id="complaintinput1" class="form-control round" placeholder=" " name="finish_date">
                            </div>
                            @error('finish_date')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>


                        <div class="form-group col-md-6">
                            <div class="controls">
                                <label for="complaintinput1">Start Time</label>
                                 <input type="text" class="clocklet-events form-control round" data-clocklet="format: _H:_m;" maxlength="5" value=" 0:00"
                                name="start_time">

                            </div>
                            @error('start_time')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                        <div class="form-group col-md-6">
                            <div class="controls  ">
                                <label class="summ-label">Finish Time</label>
                                <input type="text" class="clocklet-events form-control round" data-clocklet="format: _H:_m;" maxlength="5" value=" 0:00"
                                name="finish_time">
                            </div>
                            @error('finish_time')
                            <span class="text-danger">{{ $message }}</span>
                            @enderror
                        </div>

                </div>

            
                <div class="form-group col-lg-12 col-md-6">
                    <div class="summernote-css">
                        <label for="complaintinput1" class="">Description in arabic</label>
                        <textarea id="summernote1" rows="5" class="form-control" name="description_ar" placeholder="details"></textarea>
                    </div>
                    @error('description_ar')
                    <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div> 
                <div class="form-group col-lg-12 col-md-6">
                    <div class="controls summernote-css">
                        <label for="complaintinput1">Description in english</label>
                        <textarea id="summernote2" rows="5" class="form-control" name="description" placeholder="details"></textarea>
                    </div>
                    @error('description')
                    <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div>
                <div class="form-group col-lg-12 col-md-6">
                    <div class="controls summernote-css">
                        <label for="complaintinput1">Description in french</label>
                        <textarea id="summernote3" name="description_fr" rows="5" class="form-control"  placeholder="details"></textarea>
                    </div>
                    @error('description_fr')
                    <span class="text-danger">{{ $message }}</span>
                    @enderror
                </div> 


                <div class="row">
                    <div class="form-group col-md-6">
                        <div class="form-group mt-1">
                            <input type="checkbox" name="is_active" id="switcheryColor4" class="switchery" data-color="success" checked value="1"/>
                            <label for="switcheryColor4" class="card-title ml-1">Main Slider</label>
                        </div>
                        @error('is_active')
                        <span class="text-danger">{{ $message }}</span>
                        @enderror
                    </div>

                    <div class="form-group col-md-6">
                        <div class="controls">
                            <label for="complaintinput1">Photo</label>
                            <input type="file" id="complaintinput1" class="form-control round" placeholder="company name" name="photo">
                        </div>
                        @error('photo')
                        <span class="text-danger">{{ $message }}</span>
                        @enderror
                    </div>

                </div>

                                            
        
                <div class="col-12 d-flex flex-sm-row flex-column justify-content-end mt-2">
                    <button type="button" class="btn btn-warning mr-1"
                    onclick="history.back();">
                    <i class="ft-x"></i> Save
                    </button>
                    <button type="submit" class="btn btn-primary">
                        <i class="la la-check-square-o"></i> Back
                    </button>
                </div>

                
                </div>
 
   
            
            </form>
        ```
0 likes
4 replies
Zoul's avatar
Level 5

Since i'm using Translatable package, i forgot to add an array in Model, after adding

  public $translatable = ['title','description','organizer','address','location'];
``` its working now ! Thanks  alot for your valuable time and support !
MichalOravec's avatar

No, only for those fiels where you want to save an array.

1 like
Zoul's avatar
Level 5

I will add those fields too, to avoid future problem, Thanks

Please or to participate in this conversation.