【发布时间】:2020-01-18 08:45:33
【问题描述】:
我想上传博主的个人资料图片,但出现错误:
未定义的变量:file_name。
我认为这是一个控制器问题。我不知道为什么没有定义变量,尽管我声明了相同的变量名。 我重新启动了服务器,但它没有工作。
所以请帮帮我。
BloggerController.php
public function store(Request $request, User $user_id)
{
$user_id = DB::table('users')->where('id', $user_id)->get();
if ($request->hasfile('image')) {
$file = $request->file('image');
$ext = $file->getClientOriginalExtension();
$file_name = time() . '.' . $ext;
$file->move('bloggers/', $file_name);
}
$blog = Blog::create(
['user_id' => $user_id],
[
'image' => $file_name,
'introduction' => $request->introduction,
]
);
return redirect(route('blogger'));
}
我也改变了存储方法。
if ($request->hasfile('image')) {
$file_name = $request->file('image')->getClientOriginalName();
$request->file('image')->storeAs('bloggers/', $file_name);
}
我的迁移
Schema::create('blogs', function (Blueprint $table) {
$table->bigIncrements('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('bloggers');
$table->string('image');
$table->string('introduction');
$table->timestamps();
});
【问题讨论】:
-
你确定它在这个条件下通过 $request->hasfile('image') 吗?是的,它将是未定义的,因为它没有通过您的条件。
-
可以在没有图像的情况下创建
Blog吗?? -
@Rwd 不需要图像...
-
在这种情况下,我建议您查看laravel.com/docs/master/validation,这样您就无需检查图像是否存在于代码中。
-
@Rwd 是的,我下次再做。
标签: laravel variables laravel-5 controller undefined