我需要在页面中显示总计数.
我可以运行此循环并获取总数
DB::table('table1')
->select((DB::raw('MAX(score)')))
->where('status', 1)
->groupBy('user_id')
->get();
Run Code Online (Sandbox Code Playgroud)
但是这个查询只会在一个查询中给我计数,而且我不需要运行任何额外的循环来获得总数.
SELECT COUNT( * ) FROM (
SELECT MAX( score ) FROM table1
WHERE status =1
GROUP BY user_id
) AS totalCounter
Run Code Online (Sandbox Code Playgroud)
我怎么想在Laravel 4中运行这个RAW查询?
我想知道如何区分子资源中不同父资源的请求.
考虑子资源评论,由帖子和用户共享.注释控制器如何知道正确的父资源是什么?
我有这些路线:
Route::resource('posts', 'PostsController');
Route::resource('posts.comments', 'CommentsController');
Route::resource('users', 'UsersController');
Route::resource('users.comments', 'CommentsController');
Run Code Online (Sandbox Code Playgroud)
在CommentsController,我有这个功能:
public function index($parent_id) {
// return multiple comments here
}
Run Code Online (Sandbox Code Playgroud)
因此,我可能希望显示属于某个帖子的所有评论或属于用户的所有评论,但在这种情况下,如何CommentsController判断是否$parent_id引用帖子或用户?
我正在尝试构建我的Laravel 4站点,以便(1)主要应用程序组的组件(控制器/视图/等)耦合在一起,以及(2)Laravel在我的Web服务器的文档根目录之外的支持代码.默认的laravel主页加载正常,但我无法让命名空间控制器正确路由.这是相关的文件结构:
/ [Project Root]
/laravel [full laravel install here]
composer.json
/app
/controllers
BaseController.php
/dev
/htdocs
index.php
/app
/PageTypes
/Home
/controllers
HomeController.php
/views
HomeView.blade.php
Run Code Online (Sandbox Code Playgroud)
默认的laravel登陆页面正在加载正常.但是当我尝试使用自己的命名空间设置控制器时,我不断收到错误.
这是HomeController.php:
namespace PageTypes;
use Home\controllers;
class HomeController extends BaseController {
public function showWelcome()
{
return View::make('hello');
}
}
Run Code Online (Sandbox Code Playgroud)
这是routes.php:
<?php
Route::get('/', function()
{
return View::make('hello');
});
Route::get('/home', 'PageTypes\Home\controllers\HomeController@showWelcome' );
Run Code Online (Sandbox Code Playgroud)
此设置产生错误:"Symfony\Component\Debug\Exception\FatalErrorException Class'PageTypes\BaseController'not found"好吧,laravel至少找到HomeController.php.
很多其他SO响应告诉我尝试将BaseController更改为\ BaseController.进行一次更改并使其他所有内容保持不变会产生错误"ReflectionException:Class PageTypes\Home\controllers\HomeController不存在." 什么?...>.<
我不了解命名空间,psr-0和laravel路由的交叉点,任何帮助都会非常感激.
后续问题:(1)我可以采取哪些步骤进行调试?除了抛出的异常错误之外,NGINX的日志并没有真正告诉我任何其他内容.(2)有没有人在github上遇到类似的laravel种子?我很乐意参考.
以下是我的配置设置:
// index.php
...
require __DIR__.'/../../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../../laravel/bootstrap/start.php';
...
// bootstrap/autoload.php …Run Code Online (Sandbox Code Playgroud) 我一直在用laravel遇到一百个问题.我最近将laravel 3网站升级到了laravel 4,我将整个项目保存到Github上的存储库中.由于我经常无意中编辑错误文件夹中的文件,我只是在我的工作目录中创建了本地git存储库,所以我只有一个目录要处理.
一切都工作正常,直到我尝试安装一些laravel包,我以前能够安装.每当我运行composer update时,我的所有工匠脚本都会返回错误.即使在我确定使用开发PHP.ini文件之后,错误消息本身(可能是PHP错误)也不会显示.
fatal: No names found, cannot describe anything.
* master [KEY REMOVED] Remove mPDF Library
Script php artisan clear-compiled handling the pre-update-cmd event returned with an error
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 437
Status for device CON:
----------------------
Lines: 300
Columns: 80
Keyboard rate: 31
Keyboard delay: 1
Code page: 437
[RuntimeException]
Error Output:
update [--prefer-source] [--prefer-dist] [--dry-run] [--dev] [--no-dev] [--lock] [--no-plugins] [--no-custom-installers] [--no-scripts] …Run Code Online (Sandbox Code Playgroud) 如果我想在Laravel中创建一个函数,那在我的应用程序中随处可用,我该怎么做呢?
我的意思是,如果我创建一个名为resizeimage()的函数并想在我的Laravel应用程序中的任何地方调用它,我该怎么做?
我目前正尝试如下路线:
/account/
account_id,则用户登录; 显示他的帐户信息/account/
create,则用户想要创建帐户; 创造它/account/我的路线是这样设定的:
Route::get('account', function() {
if (Session::has('account_id'))
return 'AccountsController@show';
else
return 'AccountsController@index';
});
Route::post('account', function() {
if (Input::has('create')) {
return 'AccountsController@create';
else
return 'AccountsController@login';
)};
Run Code Online (Sandbox Code Playgroud)
这有点像我对Rails的处理,但我不知道如何指向控制器方法.我只是得到了返回的字符串.我没有在Laravel文档中找到它(我发现它很差,或者我搜索错了?)在任何其他网络教程中都没有.
我刚刚发现了Laravel,并进入了Eloquent ORM.但我在以下一个小问题上遇到了磕磕绊绊.
我有三个表,其中包含以下结构和数据:
words
id | language_id | parent_id | word
-------------------------------------------
1 | 1 | 0 | Welcome
-------------------------------------------
2 | 2 | 1 | Bienvenue
-------------------------------------------
documents
id | title
---------------------
1 | Hello World
---------------------
documents_words
document_id | word_id
--------------------------
1 | 1
--------------------------
Run Code Online (Sandbox Code Playgroud)
如您所见,我们在单词表中有父/子关系.
文档模型定义如下
class Documents extends Eloquent {
protected $table = 'documents';
public function words()
{
return $this->belongsToMany('Word', 'documents_words', 'document_id');
}
}
Run Code Online (Sandbox Code Playgroud)
和模型:
class Word extends Eloquent {
protected $table = 'words';
public function …Run Code Online (Sandbox Code Playgroud) 我正在关注Dayle Rees的Laravel教程,尝试构建一个简单的注册页面.
如果我提交带有验证错误的注册表单,页面会重新加载并显示验证错误.但是,当我键入正确的值并提交时,我收到以下错误 -
BadMethodCallException
Method [validateConfirm] does not exist.
Run Code Online (Sandbox Code Playgroud)
这是我的register.blade.php -
<!doctype html>
<html lang="en">
<head>
</head>
<body>
<h1>Registration form</h1>
{{ Form::open(array('url' => '/registration')) }}
{{-- Username field. ------------------------}}
{{ Form::label('username', 'Username') }}
{{ Form::text('username') }}
{{ $errors->first('username', '<span class="error">:message</span>') }}
<br/>
{{-- Email address field. -------------------}}
{{ Form::label('email', 'Email address') }}
{{ Form::email('email') }}
{{ $errors->first('email', '<span class="error">:message</span>') }}
<br/>
{{-- Password field. ------------------------}}
{{ Form::label('password', 'Password') }}
{{ Form::password('password') }}
{{ $errors->first('password', '<span class="error">:message</span>') }}
<br/>
{{-- …Run Code Online (Sandbox Code Playgroud) 如何在Laravel没有工匠命令的情况下查看视图CLI.我没有CLI从我的托管服务提供商,我只有访问权限FTP,运行Laravel我必须使用此命令CLI:
php artisan serve --port=8080 --host=0.0.0.0
Run Code Online (Sandbox Code Playgroud)
如果没有此命令,我怎样才能获得视图?
谢谢.
每次我跑php artisan routes,我都会得到ReflectionException错误,那个UsersController班级不存在.我很确定它确实如此.
我试过php composer dump-autoload和php artisan clear-compiled,他们都给予了同样的错误.
这是我的错误登录 /app/storage/logs/
[2014-03-30 01:41:24] production.ERROR: exception 'ReflectionException' with message 'Class UsersController does not exist' in C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Routing\ControllerInspector.php:28
Stack trace:
#0 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Routing\ControllerInspector.php(28): ReflectionClass->__construct('UsersController')
#1 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Routing\Router.php(269): Illuminate\Routing\ControllerInspector->getRoutable('UsersController', 'users')
#2 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php(211): Illuminate\Routing\Router->controller('users', 'UsersController')
#3 C:\wamp\www\re3\app\routes.php(14): Illuminate\Support\Facades\Facade::__callStatic('controller', Array)
#4 C:\wamp\www\re3\app\routes.php(14): Illuminate\Support\Facades\Route::controller('users', 'UsersController')
#5 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Foundation\start.php(269): require('C:\wamp\www\re3...')
#6 [internal function]: {closure}(Object(Illuminate\Foundation\Application))
#7 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(792): call_user_func(Object(Closure), Object(Illuminate\Foundation\Application))
#8 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(569): Illuminate\Foundation\Application->fireAppCallbacks(Array)
#9 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(552): Illuminate\Foundation\Application->bootApplication()
#10 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Console\Application.php(44): Illuminate\Foundation\Application->boot()
#11 C:\wamp\www\re3\vendor\laravel\framework\src\Illuminate\Console\Application.php(33): Illuminate\Console\Application::make(Object(Illuminate\Foundation\Application))
#12 C:\wamp\www\re3\artisan(46): …Run Code Online (Sandbox Code Playgroud)