如何将 select 列表的整数值传递给 laravel 中的控制器?
How to pass an integer value of select list to controller in laravel?
我想将 select 列表的值从视图传递到我的 controller.The 值是 course_id
。当我将 dd(request->all())
放入我的控制器时,course_id
是一个 string.In 控制器,我将其转换为整数并分配给模型对象,但始终将零插入 course_id
字段 media
table。
这是我的观点:
<form action="../media" method="post" enctype="multipart/form-data">
{{csrf_field()}}
title: <input type="text" name="title">
<br> <br>
type:
<input type="radio" name="type" value="voice" checked>Voice<br>
<input type="radio" name="type" value="video">Video<br>
<br> <br>
link: <input type="file" name="link">
<br><br>
course:
<select name="$courses" >
@foreach($courses as $course)
<option value="{{$course->id}}">
{{$course->title}}
</option>
@endforeach
</select>
<br><br>
<input type="submit">
这是商店管理员:
public function store(Request $request)
{
//dd($request->all());
$media=new Media();
$media->title=$request->title;
$media->type=$request->type;
$media->course_id=(int)($request->courses);
$media->save();
$format=$request->file('link')->getClientOriginalExtension();
$size=$request->file('link')->getSize();
$name=$request->type.'-'.$media->id.'.'.$format;
$request->file('link')->move(public_path('medias'),$name);
$media->link= $name;
$media->format=$format;
$media->size=$size;
$media->save();
return back();
}
这是创建控制器:
public function create()
{
$courses=Course::all();
return view('Admin.Media.create',compact('courses'));
}
如果你使用
select name="$courses"
在你的 HTML 中,你会得到
"$courses" => null, // or 1, 2 etc.
在您的 $request
变量中;这将很难访问。使用
select name="courses" <!-- Without the $ -->
并在您的控制器中以 $request->courses
身份访问。
注意:由于 PHP 处理类型的方式,您 不应该 强制转换为 int
,但可能不会造成伤害。
我想将 select 列表的值从视图传递到我的 controller.The 值是 course_id
。当我将 dd(request->all())
放入我的控制器时,course_id
是一个 string.In 控制器,我将其转换为整数并分配给模型对象,但始终将零插入 course_id
字段 media
table。
这是我的观点:
<form action="../media" method="post" enctype="multipart/form-data">
{{csrf_field()}}
title: <input type="text" name="title">
<br> <br>
type:
<input type="radio" name="type" value="voice" checked>Voice<br>
<input type="radio" name="type" value="video">Video<br>
<br> <br>
link: <input type="file" name="link">
<br><br>
course:
<select name="$courses" >
@foreach($courses as $course)
<option value="{{$course->id}}">
{{$course->title}}
</option>
@endforeach
</select>
<br><br>
<input type="submit">
这是商店管理员:
public function store(Request $request)
{
//dd($request->all());
$media=new Media();
$media->title=$request->title;
$media->type=$request->type;
$media->course_id=(int)($request->courses);
$media->save();
$format=$request->file('link')->getClientOriginalExtension();
$size=$request->file('link')->getSize();
$name=$request->type.'-'.$media->id.'.'.$format;
$request->file('link')->move(public_path('medias'),$name);
$media->link= $name;
$media->format=$format;
$media->size=$size;
$media->save();
return back();
}
这是创建控制器:
public function create()
{
$courses=Course::all();
return view('Admin.Media.create',compact('courses'));
}
如果你使用
select name="$courses"
在你的 HTML 中,你会得到
"$courses" => null, // or 1, 2 etc.
在您的 $request
变量中;这将很难访问。使用
select name="courses" <!-- Without the $ -->
并在您的控制器中以 $request->courses
身份访问。
注意:由于 PHP 处理类型的方式,您 不应该 强制转换为 int
,但可能不会造成伤害。