给出以下代码:
DB::table('users')->get();
Run Code Online (Sandbox Code Playgroud)
我想获取上面的数据库查询生成器将生成的原始SQL查询字符串.在这个例子中,它将是SELECT * FROM users.
我该怎么做呢?
我想创建辅助函数以避免在Laravel 5中的视图之间重复代码:
view.blade.php
<p>Foo Formated text: {{ fooFormatText($text) }}</p>
Run Code Online (Sandbox Code Playgroud)
它们基本上是文本格式化功能.我在哪里以及如何使用这些功能创建文件?
我正在使用Laravel Eloquent查询构建器,我有一个查询,我希望WHERE在多个条件下有一个子句.它有效,但它并不优雅.
例:
$results = User::where('this', '=', 1)
->where('that', '=', 1)
->where('this_too', '=', 1)
->where('that_too', '=', 1)
->where('this_as_well', '=', 1)
->where('that_as_well', '=', 1)
->where('this_one_too', '=', 1)
->where('that_one_too', '=', 1)
->where('this_one_as_well', '=', 1)
->where('that_one_as_well', '=', 1)
->get();
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来做到这一点,还是我应该坚持这种方法?
前言:我正在尝试在具有关系数据库的MVC架构中使用存储库模式.
我最近开始用PHP学习TDD,并且我意识到我的数据库与我的应用程序的其余部分非常接近.我已经阅读了有关存储库和使用IoC容器将其"注入"我的控制器的内容.很酷的东西.但是现在有一些关于存储库设计的实际问题.考虑以下示例.
<?php
class DbUserRepository implements UserRepositoryInterface
{
protected $db;
public function __construct($db)
{
$this->db = $db;
}
public function findAll()
{
}
public function findById($id)
{
}
public function findByName($name)
{
}
public function create($user)
{
}
public function remove($user)
{
}
public function update($user)
{
}
}
Run Code Online (Sandbox Code Playgroud)
所有这些find方法都使用select all fields(SELECT *)方法.但是,在我的应用程序中,我总是试图限制我获得的字段数量,因为这通常会增加开销并减慢速度.对于那些使用这种模式的人,你如何处理这个?
虽然这个类现在看起来不错,但我知道在现实世界的应用程序中我需要更多的方法.例如:
如您所见,可能存在非常长的可能方法列表.然后,如果您添加上面的字段选择问题,问题就会恶化.在过去,我通常只是将所有这些逻辑放在我的控制器中:
<?php
class MyController
{
public function users()
{
$users = User::select('name, email, status') …Run Code Online (Sandbox Code Playgroud) 我怎么说 WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)
对于更复杂的查询,我应该使用原始SQL吗?
这可能是一个微不足道的问题,但我想知道Laravel是否建议某种方法来检查返回的Eloquent集合是否$result = Model::where(...)->get()为空,以及计算元素的数量.
我们目前正在使用!$result检测空结果,是否足够?至于count($result)它是否真的涵盖了所有情况,包括空洞的结果?
我正在使用Laravel 4.我想@if使用Laravel的Blade模板引擎访问视图中的条件内的当前URL,但我不知道该怎么做.
我知道它可以使用类似的东西来完成<?php echo URL::current(); ?>但是在@if刀片声明中是不可能的.
有什么建议?
我正在阅读Laravel Blade 文档,我无法弄清楚如何在模板中分配变量以供以后使用.我不能这样做,{{ $old_section = "whatever" }}因为那会回应"无论如何",我不希望如此.
我明白我能做到<?php $old_section = "whatever"; ?>,但那并不优雅.
在Blade模板中有更好,更优雅的方法吗?
我是Laravel的新手,我正在尝试使用Artisan命令......
php artisan serve
Run Code Online (Sandbox Code Playgroud)
它显示......
Laravel开发服务器启动:http://127.0.0.1:8000
但是,它不会自动启动,当我手动输入http://127.0.0.1:8000时,它会显示以下错误:
RuntimeException未指定应用程序加密密钥.
有任何想法吗?我正在使用Laravel framework 5.5-dev.
我知道这是一个非常受欢迎的问题,但我无法为Laravel 5找到一个可行的解决方案.我一直在尝试从Codeigniter迁移很长一段时间,但这个错综复杂的安装过程一直让我失望.
我不想运行VM,这在项目之间切换时似乎很尴尬.
我不想将我的文档根目录设置为公共文件夹,这在项目之间切换时也很尴尬.
我试过了.htaccess mod_rewrite方法
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
这只是在compiled.php第7610行中给了我一个Laravel NotFoundHttpException.
当我不久前尝试L4时,我使用了将公用文件夹的内容移动到根目录的方法.L5的结构完全不同,按照相同的步骤完全打破了Laravel(服务器只返回一个空白页面).
在开发环境中是否有一种很好的方法可以删除"公共":
谢谢
**我正在使用MAMP和PHP 5.6.2