调用未定义的方法 Illuminate\Database\Eloquent\Builder::getAbsolutePath() [重复]
Posted
技术标签:
【中文标题】调用未定义的方法 Illuminate\\Database\\Eloquent\\Builder::getAbsolutePath() [重复]【英文标题】:Call to undefined method Illuminate\Database\Eloquent\Builder::getAbsolutePath() [duplicate]调用未定义的方法 Illuminate\Database\Eloquent\Builder::getAbsolutePath() [重复] 【发布时间】:2019-11-04 09:32:24 【问题描述】:我有点困惑,我得到Call to undefined method Illuminate\Database\Eloquent\Builder::getAbsolutePath() (View: C:\Users\rust\Desktop\projectName\resources\views\container\index.blade.php)
我的ContainerController.php
中的show
方法看起来像这样:
public function show($args = '')
if($document = Document::where('key', $args)->first())
return response()->download(storage_path('app'). DIRECTORY_SEPARATOR . $document->getAbsolutePath());
$items = explode('/', $args);
$department = Auth::user()->department;
if (Auth::user()->hasRole('Root'))
$department = Department::where('slug', '=', $items[0])->first();
$items = array_slice($items, 1);
if($department == null)
return redirect('/');
if(file_exists(storage_path('app' . DIRECTORY_SEPARATOR . $department->slug . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $items)))
&& !is_dir(storage_path('app' . DIRECTORY_SEPARATOR . $department->slug . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $items))))
return response()->file(storage_path('app' . DIRECTORY_SEPARATOR . $department->slug . DIRECTORY_SEPARATOR . implode(DIRECTORY_SEPARATOR, $items)));
$current_parent = 0;
foreach ($items as $item)
$container = Container::where('slug', '=', $item)
->where('parent_id', '=', $current_parent)
->where('department_id', '=', $department->id)
->first();
if(!$container) abort(404);
$current_parent = $container->id;
$contents = Container::where('parent_id', '=', $current_parent)
->where('department_id', "=", $department->id)
->get();
if (!($container = Container::find($current_parent)))
$container = $department;
return view('container.index', compact('container', 'contents', 'args'));
我不知道我做错了什么,但我现在有点迷茫
【问题讨论】:
你能告诉我们你的container/index.blade.php
吗?
它说您的错误在视图中,您是否在视图中进行任何调用?
应该不言而喻,但请不要破坏您的问题。否则它将被回滚。
@rust 那是因为您的问题有答案,并且该答案已被积极接受。能够在事后删除问题对于 Vikash 试图帮助您解决这个问题所花费的时间是不公平的。您可以找到能够自删除问题的条件on the help pages
【参考方案1】:
在您的代码中...$document
是 laravel 集合..不是文件对象。尝试加载文件,然后调用getAbsolutePath()
。
// code snippts.
if($document = Document::where('key', $args)->first())
return response()->download(storage_path('app'). DIRECTORY_SEPARATOR . $document->getAbsolutePath());
已编辑:
在您的view
中,您还使用该集合
$container->getAbsolutePath()
第 65 行。
【讨论】:
我在你的视图文件中指出了错误的代码。检查Edited
部分。
您可以评论该行并检查它是否有效...
您想在视图中正确链接文档网址吗?
comment in view,将 route('new-doc', ['args' => $container->getAbsolutePath()])
替换为#
仅用于调试。
上面写着Undefined variable: contents (View: C:\Users\rust\Desktop\projectName\resources\views\container\index.blade.php)
以上是关于调用未定义的方法 Illuminate\Database\Eloquent\Builder::getAbsolutePath() [重复]的主要内容,如果未能解决你的问题,请参考以下文章
未调用自定义 UIButton 的 setIsSelected 方法
调用未定义的方法 Cake\ORM\Entity::query() CakePhp