wingsline /
laravel-blog
| 1 | <?php |
||||
| 2 | |||||
| 3 | namespace Wingsline\Blog\Http\Controllers; |
||||
| 4 | |||||
| 5 | use Illuminate\Foundation\Auth\Access\AuthorizesRequests; |
||||
| 6 | use Illuminate\Foundation\Bus\DispatchesJobs; |
||||
| 7 | use Illuminate\Foundation\Validation\ValidatesRequests; |
||||
| 8 | use Illuminate\Routing\Controller as BaseController; |
||||
| 9 | use Spatie\MediaLibrary\Exceptions\FileCannotBeAdded; |
||||
|
0 ignored issues
–
show
|
|||||
| 10 | use Wingsline\Blog\Http\Requests\ImageUploadRequest; |
||||
| 11 | use Wingsline\Blog\Http\Requests\PostRequest; |
||||
| 12 | use Wingsline\Blog\Posts\Post; |
||||
| 13 | |||||
| 14 | class PostsController extends BaseController |
||||
| 15 | { |
||||
| 16 | use AuthorizesRequests; |
||||
| 17 | use DispatchesJobs; |
||||
| 18 | use ValidatesRequests; |
||||
| 19 | |||||
| 20 | /** |
||||
| 21 | * Show the form for creating a new resource. |
||||
| 22 | * |
||||
| 23 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\Response|\Illuminate\View\View |
||||
| 24 | */ |
||||
| 25 | public function create() |
||||
| 26 | { |
||||
| 27 | $post = new Post(); |
||||
| 28 | |||||
| 29 | $post->publish_date = now(); |
||||
|
0 ignored issues
–
show
|
|||||
| 30 | |||||
| 31 | return view('blog::posts.create', compact('post')); |
||||
| 32 | } |
||||
| 33 | |||||
| 34 | /** |
||||
| 35 | * Remove the specified resource from storage. |
||||
| 36 | * |
||||
| 37 | * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\Response |
||||
| 38 | * @throws \Exception |
||||
| 39 | */ |
||||
| 40 | public function destroy(Post $post) |
||||
| 41 | { |
||||
| 42 | $post->delete(); |
||||
| 43 | |||||
| 44 | flash()->success('Post deleted.'); |
||||
| 45 | |||||
| 46 | return redirect()->route('admin.posts.index'); |
||||
| 47 | } |
||||
| 48 | |||||
| 49 | /** |
||||
| 50 | * Show the form for editing the specified resource. |
||||
| 51 | * |
||||
| 52 | * @param int $id |
||||
| 53 | * |
||||
| 54 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\Response|\Illuminate\View\View |
||||
| 55 | */ |
||||
| 56 | public function edit(Post $post) |
||||
| 57 | { |
||||
| 58 | return view('blog::posts.edit', compact('post')); |
||||
| 59 | } |
||||
| 60 | |||||
| 61 | /** |
||||
| 62 | * Display a listing of the resource. |
||||
| 63 | * |
||||
| 64 | * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\Response|\Illuminate\View\View |
||||
| 65 | */ |
||||
| 66 | public function index() |
||||
| 67 | { |
||||
| 68 | $posts = Post::orderBy('publish_date', |
||||
| 69 | 'desc')->paginate(config('blog.per_page')); |
||||
| 70 | |||||
| 71 | return view('blog::posts.index', compact('posts')); |
||||
| 72 | } |
||||
| 73 | |||||
| 74 | /** |
||||
| 75 | * Generates a markdown preview for the post. |
||||
| 76 | * |
||||
| 77 | * @return array |
||||
| 78 | */ |
||||
| 79 | public function preview(Post $post) |
||||
| 80 | { |
||||
| 81 | $post->text = request('payload', ''); |
||||
|
0 ignored issues
–
show
|
|||||
| 82 | |||||
| 83 | return ['data' => ['html' => $post->text]]; |
||||
| 84 | } |
||||
| 85 | |||||
| 86 | /** |
||||
| 87 | * Store a newly created resource in storage. |
||||
| 88 | * |
||||
| 89 | * @param \Illuminate\Http\Request $request |
||||
| 90 | * |
||||
| 91 | * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse |
||||
| 92 | */ |
||||
| 93 | public function store(PostRequest $request) |
||||
| 94 | { |
||||
| 95 | $post = (new Post())->updateAttributes($request->validated()); |
||||
| 96 | |||||
| 97 | flash()->success('Post saved.'); |
||||
| 98 | |||||
| 99 | return redirect()->route('admin.posts.edit', $post); |
||||
| 100 | } |
||||
| 101 | |||||
| 102 | /** |
||||
| 103 | * Update the specified resource in storage. |
||||
| 104 | * |
||||
| 105 | * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse |
||||
| 106 | */ |
||||
| 107 | public function update(PostRequest $request, Post $post) |
||||
| 108 | { |
||||
| 109 | $post->updateAttributes($request->validated()); |
||||
| 110 | |||||
| 111 | flash()->success('Post updated.'); |
||||
| 112 | |||||
| 113 | return redirect()->route('admin.posts.edit', $post); |
||||
| 114 | } |
||||
| 115 | |||||
| 116 | /** |
||||
| 117 | * Upload an image. |
||||
| 118 | * |
||||
| 119 | * @return array|\Illuminate\Http\JsonResponse |
||||
| 120 | */ |
||||
| 121 | public function upload(Post $post, ImageUploadRequest $request) |
||||
| 122 | { |
||||
| 123 | try { |
||||
| 124 | $media = $post->addMedia($request->file('image')) |
||||
|
0 ignored issues
–
show
It seems like
$request->file('image') can also be of type Illuminate\Http\UploadedFile[] and array; however, parameter $file of Wingsline\Blog\Posts\Post::addMedia() does only seem to accept Symfony\Component\HttpFo...ile\UploadedFile|string, maybe add an additional type check?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
| 125 | ->toMediaCollection('images'); |
||||
| 126 | } catch (FileCannotBeAdded $exception) { |
||||
| 127 | return response()->json(['error' => $exception->getMessage()], 422); |
||||
| 128 | } |
||||
| 129 | |||||
| 130 | return [ |
||||
| 131 | 'data' => [ |
||||
| 132 | 'filePath' => ltrim( |
||||
| 133 | parse_url($media->getFullUrl(), |
||||
| 134 | PHP_URL_PATH), |
||||
| 135 | '/' |
||||
| 136 | ), |
||||
| 137 | ], |
||||
| 138 | ]; |
||||
| 139 | } |
||||
| 140 | } |
||||
| 141 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths