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

satriamuda's avatar

data does not enter the laravel database

model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Tour extends Model
{
    use HasFactory;
    
    protected $fillable = [
        'title',
        'harga',
        'waktu',
        'jumlahorang',
        'namalokasi',
        'deskripsi',
        'deskripsi1',
        'tujuan',
        'negara',
        'fasilitas',
        'faq',
        'gallery',
        'image',
        'policy',
        'tourcatagori_id', // Corrected the attribute name
    ];

    public function tourcatagori()
    {
        return $this->belongsTo(Tourcatagori::class, 'tourcatagori_id'); // Corrected the model name and attribute
    }
}

controller :

<?php

namespace App\Http\Controllers;

use App\Models\Tour;
use App\Models\tourcatagori;
use Illuminate\Http\Request;

class TourController extends Controller
{
    /**
     * Display a listing of the resource.
     */
    public function index()
    {
        return view('tour.index',[
            'tour' => Tour::paginate(10),
        ]);
    }

    /**
     * Show the form for creating a new resource.
     */
    public function create()
    {
        return view('tour.create',[
            'tour' => new Tour(),
            'tourcatagori' => tourcatagori::all(),
        ]);
    }

    /**
     * Store a newly created resource in storage.
     */
    public function store(Request $request)
{
    $this->validate($request, [
        'title' => 'required|string',
        'harga' => 'required|numeric',
        'waktu' => 'required', // Tambahkan aturan validasi 'date' untuk waktu
        'jumlahorang' => 'required|integer',
        'namalokasi' => 'required|string',
        'deskripsi' => 'required|string',
        'deskripsi1' => 'required|string',
        'tujuan' => 'required|string',
        'negara' => 'required|string',
        'fasilitas' => 'required|string',
        'faq' => 'required|string',
        'gallery' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
        'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
        'policy' => 'required|string',
        'tourcatagoris_id' => 'required|exists:tourcatagoris,id', // Tambahkan aturan validasi 'exists'
    ]);

    $galleryPath = $request->file('gallery')->store('images/tour');
    $imagePath = $request->file('image')->store('images/tour');

    $tour = Tour::create([
        'title' => $request->title,
        'harga' => $request->harga,
        'waktu' => $request->waktu,
        'jumlahorang' => $request->jumlahorang,
        'namalokasi' => $request->namalokasi,
        'deskripsi' => $request->deskripsi,
        'deskripsi1' => $request->deskripsi1,
        'tujuan' => $request->tujuan,
        'negara' => $request->negara,
        'fasilitas' => $request->fasilitas,
        'faq' => $request->faq,
        'gallery' => $galleryPath,
        'image' => $imagePath,
        'policy' => $request->policy,
        'tourcatagoris_id' => $request->tourcatagoris_id,
    ]);

    return redirect(route('tour.index'));
}


    /**
     * Display the specified resource.
     */
    public function show(Tour $tour)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     */
    public function edit(Tour $tour)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     */
    public function update(Request $request, Tour $tour)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     */
    public function destroy(Tour $tour)
    {
        //
    }
}

create blade :

<div class="row">
    <!-- Basic -->
    <div class="col-md-6">
        <div class="card mb-4">

            <div class="card-body demo-vertical-spacing demo-only-element">
                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">Title</span>
                    <input type="text" class="form-control" id="title" name="title"
                        placeholder="Explore the World" value="{{ old('title') ?? $tour->title }}" required />
                    @error('title')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text">$</span>
                    <input type="number" class="form-control" id="harga" name="harga" placeholder="Amount"
                        aria-label="Amount (to the nearest dollar)" />
                    <span class="input-group-text">.00</span>
                    @error('harga')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">Time</span>
                    <input type="text" class="form-control" id="waktu" name="waktu"
                        placeholder="Explore the World" value="{{ old('waktu') ?? $tour->waktu }}" required />
                    @error('waktu')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">People</span>
                    <input type="text" class="form-control" id="jumlahorang " name="jumlahorang "
                        placeholder="Explore the World" value="{{ old('title') ?? $tour->jumlahorang }}" required />
                    @error('jumlahorang ')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">Location </span>
                    <input type="text" class="form-control" id="namalokasi" name="namalokasi"
                        placeholder="Explore the World" value="{{ old('namalokasi') ?? $tour->namalokasi }}" required />
                    @error('namalokasi')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">Destination </span>
                    <input type="text" class="form-control" id="tujuan" name="tujuan"
                        placeholder="Explore the World" value="{{ old('tujuan') ?? $tour->tujuan }}" required />
                    @error('tujuan')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">negara</span>
                    <input type="text" class="form-control" id="negara" name="negara"
                        placeholder="Explore the World" value="{{ old('negara') ?? $tour->negara }}" required />
                    @error('negara')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>



                <div class="input-group">
                    <span class="input-group-text">deskripsi</span>
                    <textarea class="form-control" id="deskripsi" name="deskripsi" rows="3"
                        value="{{ old('deskripsi') ?? $tour->deskripsi }}" required></textarea>
                </div>
            </div>
        </div>
    </div>


    {{-- bagian ke dua --}}

    <div class="col-md-6">
        <div class="card mb-4">

            <div class="card-body demo-vertical-spacing demo-only-element">

                <div class="input-group">
                    <label class="input-group-text" for="basic-default-upload-file">gallery</label>
                    <input type="file" class="form-control" id="gallery" name="gallery" required />
                    @error('gallery')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <label class="input-group-text" for="basic-default-upload-file">image</label>
                    <input type="file" class="form-control" id="image" name="image" required />
                    @error('image')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>





                <div class="input-group">
                    <span class="input-group-text">deskripsi</span>
                    <textarea class="form-control" id="deskripsi" name="deskripsi1" rows="3"
                        value="{{ old('deskripsi1') ?? $tour->deskripsi1 }}" required></textarea>
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">faq</span>
                    <input type="text" class="form-control" id="faq" name="faq"
                        placeholder="Explore the World" value="{{ old('faq') ?? $tour->faq }}" required />
                    @error('faq')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>

                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">policy</span>
                    <input type="text" class="form-control" id="policy" name="policy"
                        placeholder="Explore the World" value="{{ old('policy') ?? $tour->policy }}" required />
                    @error('policy')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>
                <div class="input-group">
                    <span class="input-group-text" id="basic-addon11">fasilitas</span>
                    <input type="text" class="form-control" id="fasilitas" name="fasilitas"
                        placeholder="Explore the World" value="{{ old('fasilitas') ?? $tour->fasilitas }}"
                        required />
                    @error('fasilitas')
                        <div class="text-red-500 mt-2">{{ $message }}</div>
                    @enderror
                </div>


                <div class="input-group">

                    <select class="form-control" name="tourcatagoris_id" required>
                        <option value="">Pilih Kategori</option>
                        @foreach ($tourcatagori as $result)
                            <option value="{{ $result->id }}">{{ $result->name }}</option>
                        @endforeach
                    </select>
                </div>

            </div>
        </div>
    </div>

</div>



<div class="row">
    <div class="col-12">
        <button type="submit" class="btn btn-primary">Submit</button>
    </div>
</div>

</div>
</div>
</div>
<!-- /Browser Default -->


<!-- /Bootstrap Validation -->
</div>

</div>








{{-- <div class="container-xxl flex-grow-1 container-p-y">

    <div class="row mb-4">
        <!-- Browser Default -->
        <div class="col-md mb-4 mb-md-0">
            <div class="card">
                <h5 class="card-header">Masukan Data tour</h5>
                <div class="card-body">
                    <form class="browser-default-validation">
                        <div class="mb-3">
                            <label class="form-label" for="basic-default-name">Judul</label>
                            <input type="text" class="form-control" id="title" name="title"
                                placeholder="Explore the World" value="{{ old('title') ?? $tour->title }}" required />
                            @error('title')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>
                        <div class="mb-3">
                            <label class="form-label" for="basic-default-name">Harga</label>
                            <input type="text" class="form-control" id="harga" name="harga"
                                placeholder="Find your perfect tour" value="{{ old('harga') ?? $tour->judul }}"
                                required />
                            @error('harga')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label class="form-label" for="basic-default-name">waktu</label>
                            <input type="text" class="form-control" id="waktu" name="waktu"
                                placeholder="Find your perfect tour" value="{{ old('waktu') ?? $tour->judul }}"
                                required />
                            @error('waktu')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label class="form-label" for="basic-default-upload-file">Upload Gambar tour</label>
                            <input type="file" class="form-control" id="image" name="image" required />
                            @error('image')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label class="form-label" for="basic-default-bio">Bio</label>
                            <textarea class="form-control" id="deskripsi" name="deskripsi" rows="3"
                                value="{{ old('deskripsi') ?? $tour->deskripsi }}" required></textarea>
                            @error('deskripsi')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>

                        <div class="mb-3">
                            <label class="form-label" for="basic-default-name">Url</label>
                            <input type="url" class="form-control" id="url" name="url"
                                placeholder="https://example.com" value="{{ old('url') ?? $tour->url }}" required />
                            @error('url')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>
                        <div class="mb-3">
                            <label class="form-label" for="basic-default-name">Youtube</label>
                            <input type="url" class="form-control" id="youtube" name="youtube"
                                placeholder="id_youtube" value="{{ old('youtube') ?? $tour->youtube }}" required />
                            @error('youtube')
                                <div class="text-red-500 mt-2">{{ $message }}</div>
                            @enderror
                        </div>


                        <div class="row">
                            <div class="col-12">
                                <button type="submit" class="btn btn-primary">Submit</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
        <!-- /Browser Default -->


        <!-- /Bootstrap Validation -->
    </div>

</div> --}}

0 likes
4 replies
Snapey's avatar

temporarily add code to display all errors

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
 
tangtang's avatar

@satriamuda

<form action="{{ route('route name') }}" method="POST"> // you have this form tag in your blade ?
	// your input field here . . .
</form> // and this close tag too ?

when you click the submit button, make sure the data can reach store function in your TourController

Please or to participate in this conversation.