[英]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.