我的 laravel-class 应该继承什么?
我的 laravel-class 应该继承什么?
根据这些回答的建议:Laravel 4的助手或基本功能的最佳实践和最佳位置是什么?
我创建了一个文件app/library/sitehelpers.php
并将其添加到应用程序中。我的类应该继承什么?如何在控制器中引用它?
type = $type; $post->postid = $postid; $post->url = $url; $post->author = $author; $post->content = $content; try { $post->save(); echo $post; }catch(Exception $e){ throw new Exception( 'Already saved', 0, $e); } } }
我尝试在控制器中这样引用它:
public function savepostController($type, $postid, $url, $author, $content) { SiteHelpers::save($type, $postid, $url, $author, $content); }
但是我得到了控制器方法未找到的错误。
问题的出现原因:这个问题的出现是因为提问者想知道他的 Laravel 类应该继承什么,以便在 Laravel 中使用。
解决方法:根据回答者的回答和建议,提问者可以不需要继承任何类,只要将类文件放在 composer require 的路径下,Laravel 就会自动加载这个类。同时,如果想要为类添加一些功能,可以选择继承或实现 Laravel 的一些类(例如门面类),但这不是必须的。
此外,根据代码提供的信息,提问者的 save 函数更适合放在模型中而不是外部的帮助类。帮助类只应包含一些简单的方法,比如格式化日期或根据其他值计算某个值。为了减少依赖性并在更改模型时减少错误,帮助类应该包含不使用外部内容(在这种情况下,一个 Eloquent 模型)的简单函数。建议将该函数移动到 Post 模型中,并将其定义为静态函数。
为了以静态方式调用它(使用 ::),需要将函数定义为静态函数,或者使用 Laravel IoC(门面)来完成工作。关于如何以静态方式调用函数的更多信息可以在文档中找到:http://laravel.com/docs/facades
提问者追问了在 Laravel 中如何调用这个函数以及如何从控制器中引用一个帮助函数。回答者解释了如何以静态方式调用函数,并给出了在控制器中引用帮助函数的方法。
最后,提问者追问了如何将函数移动到 Post 模型中。回答者建议将函数移动到模型中,并将其定义为静态函数,然后可以直接调用 $post = Post::create($...)。