php - Laravel 7标签不显示
问题描述
我做一个udemy课程
我有一个问题
当我开始创建帖子时,我必须插入一张照片
添加照片时,照片不显示
而“查看源页面”清楚地显示照片已插入,应该显示但不显示
我写了代码 li
<img src="{{ $post->image }}" alt="">
我也尝试添加此扩展程序,但它不再起作用
<img src="{{ asset($post->image) }}" alt="">
查看源页面
<img src="posts/2F2K2uHwvdL11pB8FSmecTeKCCNe1qIaLjCTcOPU.jpeg" alt="">
后控制器
public function create()
{
return view('posts.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(CreatePostsRequest $request)
{
$image = $request->image->store('posts');
Post::create([
'title' => $request->title,
'description' => $request->description,
'content' => $request->content,
'image' => $image
]);
session()->flash('success','Post is successfully created');
return redirect(route('posts.index'));
}
创建帖子请求
class CreatePostsRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title' => 'required|unique:posts',
'description' => 'required',
'image' => 'required|image',
'content' => 'required'
];
}
}
Post.php
class Post extends Model
{
protected $fillable = [
'title','description','content','image','published_at'
];
}
如果有人可以帮助我度过一个美好的夜晚,我会与之抗争,但我失败了
先感谢您
解决方案
您没有使用完整的存储路径名称,如查看页面源中所示。
首先,您需要使用 artisan link 命令确保您的存储和公用文件夹已链接:
php artisan storage:link
接下来,您可以使用 store 方法指定公共目录:
$image = $request->image->store('public/posts');
现在您可以通过以下方式访问您的图像:
<img src="{{asset('storage/posts/' . $post->image)}}" alt="">
推荐阅读
- python - 使用 Selenium 登录网站时出现问题
- javascript - 如何使用正确的正则表达式修复密码验证条件?
- c# - 使用 Thread.Join() 时表单冻结,如何防止?
- r - 为什么我的 R for 循环没有运行括号中的所有操作?
- c# - RijndaelManaged 返回空结果
- iis - 如何将正在运行的 W3wp.exe 实例关联到特定的 Web 应用程序?
- javascript - Howto:当部分在视口中时添加类
- c# - 如何将多个 Deedle 系列合并为 1 个大系列?
- reactjs - 使用基于主题的 Box 功能的可重用组件
- javascript - 如何发送一个不仅仅是普通字符串的变量,从 Javascript 到 PHP 等以便能够在 SQL 查询中使用