【问题标题】:"Undefined variable" in laravel 5.2 viewlaravel 5.2 视图中的“未定义变量”
【发布时间】:2017-05-04 13:05:38
【问题描述】:

如果我将此路由包含在参数中,我会在视图中收到未定义的变量错误:

<div class="table-toolbar">
  <div class="row">
    <div class="col-md-6">
      <div class="btn-group">
        <a href="{{ route('major-facilities.add', $campusMajorId) }}" class="btn btn-md btn-success"><i class="fa fa-plus"></i> Add new</a>
      </div>
     </div>
    </div>
</div>

这是给定视图的完整控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Model\CampusMajor;
use App\Model\CampusMajorsFacilities;

class CampusMajorsFacilitiesController extends Controller
{
    //
    public function index($campusMajorId)
    {
        $campusMajorsFacilities = CampusMajorsFacilities::ofCampusMajor($campusMajorId)->get();
    $data = [
        'campusMajorsFacilities' => $campusMajorsFacilities,
        'campusMajor'    => $campusMajorId
    ];

    return view('major-facilities.index', $data);
}

public function add($campusMajorId)
{
    $campusMajorsFacilities = new CampusMajorsFacilities;

    $data = [
        'campusMajorsFacilities'  => $campusMajorsFacilities,
        'campusMajorId'    => $campusMajorId,
        'formIs'           => 'add'
    ];

    return view('major-facilities.form', $data);
}

public function save(Request $request,$campusMajorId)
{
    $this->validation($request);
    $post = $request->all();
    $campusMajorsFacilities = $this->bindToObject($post,$campusMajorId);
    $campusMajorsFacilities->save();

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item added Succesfully');
}

public function edit($campusMajorId, $id)
{
    $campusMajorsFacilities = CampusMajorsFacilities::find($id);

    $data = [
        'campusMajorsFacilities'  => $campusMajorsFacilities,
        'campusMajorId'    => $campusMajorId,
        'formIs'           => 'edit'
    ];

    return view('major-facilities.form', $data);
}

public function update(Request $request,$campusMajorId,$id)
{
    $this->validation($request);
    $post = $request->all();
    $campusMajorsFacilities = $this->bindToObject($post,$campusMajorId,$id);
    $campusMajorsFacilities->save();

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item updated Succesfully');
}

private function validation($request)
{
    $this->validate($request,[
            'title' => 'required',
            'description' => 'required',
            'content'     => 'required',
            'campus_major_id' => 'required'
        ]);
}

public function delete($campusMajorId,$id)
{
    $campusMajorsFacilities = CampusMajorsFacilities::find($id);
    $campusMajorsFacilities->delete();

    return redirect()->route('major-facilities.index', $campusMajorId)->with('message','Item deleted Succesfully');
}

private function bindToObject($post,$campusMajorId,$id=null)
{
    if(is_null($id)){
        $campusMajorsFacilities = new CampusMajorsFacilities;
    } else {
        $campusMajorsFacilities = CampusMajorsFacilities::find($id);
    }

    $campusMajorsFacilities->major_campus_id = $campusMajorId;
    $campusMajorsFacilities->title = $post['title'];
    $campusMajorsFacilities->description = $post['description'];
    $campusMajorsFacilities->content = $post['content'];

    return $campusMajorsFacilities;
}

}

还有我的模特

<?php

namespace App\Model;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class CampusMajorsFacilities extends Model
{
    //
    use SoftDeletes;

public function CampusMajor()
{
    return $this->belongsTo('App\Model\CampusMajor');
}

public function scopeOfCampus($query, $campus_id)
{
    return $query->where('campus_id', $campus_id);
}

public function scopeOfCampusMajor($query, $campus_major_id)
{
    return $query->where('campus_major_id', $campus_major_id);
}
}

如果我注释掉我通过视图的路线就好了,我不知道我哪里错了。

【问题讨论】:

  • 您的index 方法添加了属性campusMajor。你确定这不是campusMajorId
  • 是的,campusMajor 属性本来就是campusMajorId
  • 投票以错别字结束

标签: php laravel view undefined


【解决方案1】:

您已将 $campusMajorId 从控制器传递到仅查看为 campusMajor,而不是查看为 campusMajorId

因此该变量在视图中未定义。

【讨论】:

  • 对于简单的 typo 问题进行了近距离投票。回答这些类型的问题没有帮助
  • 天哪,没意识到。谢谢!
猜你喜欢
  • 2017-07-16
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 2018-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多