laravel undefined变量:行程

时间:2017-12-07 03:07:01

标签: php laravel

我似乎无法从控制器中的更新功能中找到变量行程。这似乎是什么问题?

错误说:未定义的变量:行程(查看:C:\ xampp \ htdocs \ project_name \ resources \ views \ Agent \ edit.blade.php)

AgentsController更新功能

public function update(Request $request, $p_id){
    $this->validate($request, [
        'packageName' => 'required',
        'adultPrice' => 'required',
        'childPrice' => 'required',
        'infantPrice' => 'required',
        'excessPrice' => 'required',
        'type' => 'required',
        'inclusions' => 'required',
        'additionalInfo' => 'required',
        'reminders' => 'required',
        'photo' => 'required',
        'tags' => 'required',
        'noOfDays' => 'required',
        'day' => 'required',
        'time' => 'required',
        'destination' => 'required'
    ]);

    $packages = Packages::find($p_id);
    $packages->packageName = $request->input('packageName');
    $packages->adultPrice = $request->input('adultPrice');
    $packages->childPrice = $request->input('childPrice');
    $packages->infantPrice = $request->input('infantPrice');
    $packages->excessPrice = $request->input('excessPrice');
    $packages->type = $request->input('type');
    $packages->inclusions = $request->input('inclusions');
    $packages->additionalInfo = $request->input('additionalInfo');
    $packages->reminders = $request->input('reminders');
    $packages->photo = $request->input('photo');
    $packages->tags = $request->input('tags');
    $packages->save();

    $itinerary = Itinerary::find($p_id);
    if($itinerary->p_id == $packages->p_id){
    $itinerary->noOfDays = $request->input('noOfDays');
    $itinerary->day = $request->input('day');
    $itinerary->time = $request->input('time');
    $itinerary->destination = $request->input('destination');
    $itinerary->save();

    return redirect('Agent/Packages')->with('success', 'Updated');
    }
}

edit.blade.php,其中包含错误

{{!!Form::open(array('class' => 'form-horizontal', 'method' => 'post', 'action' => array('AgentsController@update', $packages->p_id, $itinerary->p_id)))!!}}

Itinerary.php模型

<?php
   namespace App;

   use Illuminate\Database\Eloquent\Model;

   class Itinerary extends Model{
      public $fillable = [
        'p_id',
        'noOfDays',
        'day',
        'time',
        'destination'
   ];

   protected $primaryKey = 'i_id';
   }
?>

编辑功能

public function edit($p_id){
   $packages = Packages::find($p_id);
   $itinerary = Itinerary::find($p_id);

   return View::make('\Agent\Edit', ['packages' => $packages, 'itineraries' => $itinerary]);
}

2 个答案:

答案 0 :(得分:1)

传递数据的方式是错误的。

Documentation

你可以通过几种方法。示例:

1 - return View::make('Agent.edit', ['packages' => $packages, 'itinerary' => $itinerary]);

2 - return View::make('Agent.edit')->with(['packages' => $packages, 'itinerary' => $itinerary]);

3 - return View::make('Agent.edit')->with('packages', $packages)->with('itinerary', $itinerary);

答案 1 :(得分:0)

在您的edit.blade.php中,尝试通过$ itineraries(复数)重新启动$ itinerary变量。