【发布时间】:2017-03-02 18:33:54
【问题描述】:
我需要将多个图像作为数组上传,为此我设置了我的控制器,如下所示:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Detail;
class DetailController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data=Detail::all();
return view('details.index',compact('data'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
$data=Detail::all();
return view('details.create',compact('data'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(request $request) {
$input=$request->all();
if($files=$request->file('images')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('image',$name);
$input['images']=$name;
}
}
Detail::create($input);
return redirect('/details');
}
而我的路线是:
Route::resource('/details','DetailController');
这样做我已经能够将选定的图像存储在公共文件夹中,即Public/image 中。但是只有一张图像像这样存储在数据库中。Database image。 如果存储在数据库中的选定图像中只有一个和其余的图像被公开存储,是否可以。如果没问题,那么我如何访问/显示显示页面中的所有图像。 谢谢。
【问题讨论】:
-
我看不到插入查询的功能。
-
不是模型自己做的吗?
-
@Amani 我有一个名为 Detail 的模型,如下所示:
-
通常你必须把:
Detail::create($input);放在 foreach 循环中,因为你有多行,像这样:foreach($input as $row){ Detail::create($row); }如果你想跳过循环,你可以简单地使用DB::table('Detail')->insert($input); -
使用
DB类别忘了加use DB;