Besoin d'aide ?

Methode create et store avec variables d'autre méthode de la classe

  • Avatar de SébastienLegrand
    Membre depuis :
    24/10/2019
    Messages :
    1

    Hello,

    Est-ce que l'un d'entre vous pouvez me dire comment je dois m'y prendre pour compléter ma fonction create et store de mon controlleur en y ajoutant le contenu d'une variable provenant d'une autre méthode de la même classe.

    Dans la méthode "create" et "store", j'ai laissé blanc ma variable $house_id.
    En réalité elle devrait correspondre à la valeur de $house de la méthode Show.

    Je ne vois pas comment faire pour la récupérer.

    Merci pour votre aide...

    Voici tout le code du contrôleur:

    <?php

    namespace App\Http\Controllers;
    use Illuminate\Http\Request;
    use App\Booking;
    use App\House;
    use App\Agency;
    use App\Customer;
    use App\Booking_status;
    use App\Event;

    class BookingsController extends Controller
    {
    /**

    • Display a listing of the resource.
    • @return \Illuminate\Http\Response
      */
      public function index()
      {
      //

      }

      /**

    • Show the form for creating a new resource.
    • @return \Illuminate\Http\Response
      */
      public function create()
      {
      $house_id = '';
      $booking_status = Booking_status::all(); //affiche les status disponibles
      $events = Event::where('lang','fr')->get();//affiche les évènements disponibles en FR
      $agencies = Agency::all();//affiche les agences disponibles
      $languages = array('FR','NL','DE','EN');//affiche les langues disponibles
      return view('/admin/bookings/create',compact('booking_status','events','agencies','languages','house_id'));
      }

      /**

    • Store a newly created resource in storage.
    • @param \Illuminate\Http\Request $request
    • @return \Illuminate\Http\Response
      */
      public function store(Request $request)
      {
      // Validation des données
      request()->validate([
      'arrival' => ['required'],
      'departure' => ['required'],
      'customer' => ['required']
      ]);

      Customer::create([
      'name'=>$customer,
      'lang'=> request('lang'),
      'email'=> request('email')

      ]);

      $customer = request('customer');

      Booking::create([
      'house_id' => '',
      'arrival' => request('arrival'),
      'departure' => request('departure'),
      'status_id' => request('status'),
      'event_id' => request('event'),
      'agency_id' => request('agency'),
      'customer' => $customer,

      ]);

      return redirect('/admin')->with('ok', 'La réservation a bien été ajoutée');

      }

      /**

    • Display the specified resource.
    • @param int $id
    • @return \Illuminate\Http\Response
      */
      public function show($house)
      {
      $houseTitle = House::where('id', $house)->first();
      $bookings = House::find($house)->bookings;
      //dd($bookings);
      return view('admin/bookings.show', compact('bookings','houseTitle'));
      }

      /**

    • Show the form for editing the specified resource.
    • @param int $id
    • @return \Illuminate\Http\Response
      */
      public function edit(Booking $booking)
      {
      $booking_status = Booking_status::all(); //affiche les status disponibles
      $events = Event::where('lang','fr')->get();
      $agencies = Agency::all();
      $languages = array('FR','NL','DE','EN');

      return view('admin/bookings.edit', compact('booking','booking_status','events','agencies','languages'));

      }

      /**

    • Update the specified resource in storage.
    • @param \Illuminate\Http\Request $request
    • @param int $id
    • @return \Illuminate\Http\Response
      */
      public function update(Booking $booking)
      {

      // Validation des données
      $data = request()->validate([

      'arrival' => ['required'],
      'departure' => ['required'],
      'total' => ['required']
      ]);
      $booking->update($data);
      //return redirect()->route('bookings.index',['booking_id'=> $booking->id]);
      return redirect('/admin/bookings/'.$booking->house_id)
      ->with('ok', 'La réservation a bien été modifiée')
      ->with('booking_id',$booking->id);

      }

      /**

    • Remove the specified resource from storage.
    • @param int $id
    • @return \Illuminate\Http\Response
      */
      public function destroy($id)
      {
      //
      }
      }
  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2565

    Salut,

    Si tu as besoin d'une valeur alors il faut l'envoyer dans la page avec le formulaire, par exemple dans un input caché.

Vous ne pouvez pas répondre à ce sujet.