简体   繁体   English

刀片视图中的未定义变量

[英]Undefined Variable in blade view

I have this error in a form where i use a foreach in a select option. 我在选择选项中使用foreach的形式出现此错误。 I can't find where the error is. 我找不到错误在哪里。

Undefined variable: types (View: /var/www/laravel/resources/views/clases/create.blade.php) 未定义的变量:类型(视图:/var/www/laravel/resources/views/clases/create.blade.php)

Form: 形成:

 ...
        <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>
...

ClaseController ClaseController

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();

}

model 'Clase': 模型“ Clase”:

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');
}

...

}

model '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');
 }

}

Already checked the two models i use in the controller but can't find the error that it seems to be in the foreach ($types as $tp)... Any help thanks in advance. 已经检查了我在控制器中使用的两个模型,但是找不到似乎在foreach中的错误($ types为$ tp)...任何帮助都在此先感谢。

Controller 控制者

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

Form: 形成:

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM