【问题标题】:Undefined Variable in blade view刀片视图中的未定义变量
【发布时间】:2018-07-24 01:58:02
【问题描述】:

我在选择选项中使用 foreach 的表单中出现此错误。我找不到错误在哪里。

未定义变量:类型(查看:/var/www/laravel/resources/views/clases/create.blade.php)

表格:

 ...
        <div class="form-group{{ $errors->has('types') ? ' has-error' : '' }}">
          <label class="col-md-2 control-label" for="selectbasic">Doy clases de<em>*</em></label>
          <div class="col-md-6">
            <select id="type" name="types[]" value="" class="selectpicker form-control show-tick" data-live-search="true" multiple="multiple" multiple title="Seleccionar una o varias opciones" data-size="6" data-max-options="8" data-selected-text-format="count > 3">
              @foreach($types as $tp)
                  <option value="{{$tp->id}}" {{in_array($tp->id, old("types") ?: []) ? "selected": ""}}>{{$tp->type}}</option>
              @endforeach
            </select>
          </div>
          @if ($errors->has('types'))
              <span class="help-block">
                  <strong>{{ $errors->first('type') }}</strong>
              </span>
          @endif
        </div>
...

类控制器

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Pagination\LengthAwarePaginator;
use Carbon\Carbon;
use Validator;
use App\Clase;
use App\Province;
use App\Style;
use App\Type;
use App\Instrument;
use Auth;
use Image;
use Illuminate\Validation\Rule;

class ClaseController extends Controller
{

...
public function create()
{

    $userid = Auth::user()->id;
    $user_clases = \DB::table('clases')
        ->where('user_id', '=', $userid)
        ->first();
        return view('clases.create',compact('userid'));    
}

public function store(Request $request)
{
 $validator = Validator::make($request->all(),[
        'description' => 'required',
        'types' => 'required|required|array|min:1',
        'phone' => 'required',
        'image' => 'image|mimes:jpeg,bmp,png|max:6144',
        'g-recaptcha-response' => 'required|captcha'

    ]);
 $clase = new Clase;

 ...

 $clase->types()->attach($request->types);
 $clase->save();

}

模型“分类”:

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Database\Eloquent\Builder;
use App\Traits\DatesTranslator;
use App\SessionHistory;
use Carbon\Carbon;

class Clase extends Model
{

use  SoftDeletes, DatesTranslator;

public $dates = ['moderated_at','reported_at','deleted_at'];  

protected $fillable = ['content','...','...','types']; 

...

public function types(){
    return $this->belongsToMany('App\Type');
}

...

}

模型“类型”:

namespace App;

use Illuminate\Database\Eloquent\Model;

 class Type extends Model
{

 public $timestamps = false;

 protected $fillabe = ['type'];

 public function clases(){
     return $this->hasMany('App\Clase');
 }

}

已经检查了我在控制器中使用的两个模型,但找不到似乎在 foreach 中的错误($types as $tp)... 任何帮助提前感谢。

【问题讨论】:

  • $types 尚未定义。将$types 分配给函数types()
  • 将 $types 分配给函数 types(),在 Type model? 中,同样的错误。

标签: php laravel-5


【解决方案1】:

控制器

public function create()
{
    $userClases = Clase::where('user_id', Auth::user()->id);
    return view('clases.create',compact('userClases'));    
}

表格:

<div class="col-md-6">
    <select id="type" name="types[]" value="" class="selectpicker form-control show-tick" data-live-search="true" multiple="multiple" multiple title="Seleccionar una o varias opciones" data-size="6" data-max-options="8" data-selected-text-format="count > 3">
        @foreach($userClases->types as $tp)
           <option value="{{$tp->id}}" {{in_array($tp->id, old("types") ?: []) ? "selected": ""}}>{{$tp->type}}</option>
        @endforeach
     </select>
</div>

【讨论】:

    猜你喜欢
    • 2014-03-15
    • 2017-08-24
    • 2017-02-08
    • 1970-01-01
    • 2017-02-08
    • 2019-01-22
    • 1970-01-01
    • 2017-06-17
    • 2018-11-26
    相关资源
    最近更新 更多