Thursday, May 3, 2018

Posting data over post route – Page expired - development

Posting data over post route – Page expired

I’m attempting to post data to my database using Laravel, but I can’t seem to do so. The post route sends to a an expired page.

Here is the route

Route::post('/expenses', 'PropertyExpenseController@store')->middleware('auth');

This is the create and store functions which render the form, and process the form.

public function create($id){
    $property = PropertyAdvert::where('id', $id)->first();
    return view('/pages/expenses/create', compact('property'));
  }

  public function store(Request $request){
    $PropertyExpenses = PropertyExpenses::create([
      "property_id"         => $request->property_id,
      "user_id"             => Auth::user()->id,
      "expenseDescription"  => $request->description,
      "cost"                => $request->amount,
      "date"                => $request->date,
      "category"            => $request->category
    ]);  

    return "Expense Log";
  }

This is the view page, where the form is loaded. All the data is got in the controller via the names on the input elements.

<form method="POST" action="/expenses">
    <span name="property_id" class="text-muted"></span>
      <div class="row mt-4 justify-content-center">
        <div class="col-md-6">
          <label class="" for"description">Expense Description<label>
        </div>
      </div>
      <div class="row form-group justify-content-center">
        <div class="col-md-4">
          <input class="form-control " type="text" name="description">
        </div>
      </div>

      <div class="row mt-4 justify-content-center">
        <div class="col-md-6">
          <label for"amount">Amount<label>
        </div>
      </div>
      <div class="row form-group justify-content-center">
        <div class="col-md-4 input-group">
          <span class="input-group-addon mr-1 mt-1">€</span>
          <input class="form-control" type="text" name="amount">
        </div>
      </div>

      <div class="row mt-4 justify-content-center">
        <div class="col-md-6">
          <label for"category">Category<label>
        </div>
      </div>
      <div class="row form-group justify-content-center">
        <div class="col-md-4">
          <select class="form-control" id="category" name="category">
            <option>Mortgage Payment</option>
            <option>Maintainence</option>
            <option>Management Fee</option>
          </select>
        </div>
      </div>

      <div class="row mt-4 justify-content-center">
        <div class="col-md-6">
          <label for"description">Date<label>
        </div>
      </div>
      <div class="row form-group justify-content-center">
        <div class="col-md-4">
          <input class="form-control" type="date" name="date">
        </div>
      </div>
      <input type="submit" class="btn btn-primary" value="Log Expense">
    </form>

THis is the model, with the fillable array.

class PropertyExpense extends Model
{
    protected $fillable = ['property_id'. 'user_id', 'expenseDescription', 'cost', 'date', 'category'];

    public function property(){
        return $this->belongsTo('AppPropertyAdverts');
    }
}



from Laravel Questions and Answers https://laravelquestions.com/laravel/posting-data-over-post-route-page-expired/
via Lzo Media

No comments:

Post a Comment