我正在尝试关于laraasts基础知识的laracasts教程但是在安装了作曲家和laravel之后没有任何问题我无法让我的路由文件与控制器一起工作我重新安装了laravel复制它究竟laracasts如何但他仍然没有,有谁看到这两个文件有什么问题?
routes.php文件
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', 'Controller@index');
Route::get('contact', 'Controller@contact');
Run Code Online (Sandbox Code Playgroud)
controller.php文件
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
abstract class Controller extends BaseController
{
use DispatchesJobs, ValidatesRequests;
public function ___construct() …Run Code Online (Sandbox Code Playgroud) 每当我加载页面时,我都可以看到Laravel从/ storage文件夹中读取大量数据.
一般来说,动态读取和写入我们的文件系统是一个瓶颈.我们使用的是Google App Engine,我们的存储位于Google云端存储中,这意味着一次写入或读取等同于"远程"API请求.谷歌云存储速度很快,但我觉得它很慢,因为Laravel每个请求最多可以进行10-20次云存储调用.
是否可以将数据存储在Memcache而不是/ storage目录中?我相信这会给我们的系统带来更好的性能.
NB.Session和Cache都使用Memcache,但编译的视图和meta存储在文件系统中.
php google-app-engine google-cloud-storage laravel laravel-4
目前我正在使用 laravel 5 项目,其中包含约 100 个帖子和获取路线。我试图在这里添加中间件,但这个项目背后的逻辑真的很复杂。中间件将在这里发挥非常重要的作用。在我使用组之前,例如:
Route::group(['middleware' => 'auth'], function(){
//routes
});
Run Code Online (Sandbox Code Playgroud)
但是一切都变得非常混乱,因为我必须在组中创建组,例如:
Route::group(['middleware' => 'auth'], function(){
Route::group(['middleware' => 'status'], function(){
//routes
});
});
Run Code Online (Sandbox Code Playgroud)
目前我有 20 个控制器,所以每个控制器包含大约 5 个路由。您能否建议我在大型项目中使用中间件的更有效方法。你用什么方法?提前致谢!
实际上,我想在.env文件中使用这样的arry,我不知道在.env文件中创建数组变量.
VARIABLE_NAME = [
[0] => 'Value 1',
[1] => 'Value 2',
[3] => 'Value 3',
.................
];
Run Code Online (Sandbox Code Playgroud) 就像我们可以急切地加载一个Eloquent模型的关系一样,有没有办法急于加载一个不是Eloquent模型的关系方法的方法?
例如,我有一个Eloquent模型GradeReport,它有以下方法:
public function totalScore()
{
return $scores = DB::table('grade_report_scores')->where('grade_report_id', $this->id)->sum('score');
}
Run Code Online (Sandbox Code Playgroud)
现在我收集了一些GradeReportEloquent模型.
$gradeReports = GradeReport::where('student_id', $studentId)->get();
Run Code Online (Sandbox Code Playgroud)
如何在集合中totalScore为所有GradeReportEloquent模型加载方法的返回值?
我已经设置了一个带有客户端身份验证的 Laravel 应用程序。我将我的客户端 ID 和客户端密码发送给它,它给了我一个令牌。我可以登录我的 Laravel 应用程序,但我不知道如何获取已授权客户端的 ID。
我已经看到了用于auth()->user()->Token()->getAttribute('client_id')获取客户端 ID 的提示,但是由于我只使用客户端,因此没有用户,并且我收到有关尝试在空对象上调用 Token() 的错误。Auth::id()也一无所获。我用 获取了标头中的令牌Request::header('Authorization'),但它与数据库中的任何内容都不匹配。
我在共享服务器上上载了laravel 4文件,然后我看到了这个错误.
解析错误:语法错误,意外'['in.第77行/vendor/guzzlehttp/psr7/src/functions.php
第77行:
function stream_for($ resource ='',array $ options = [])
我在使用 Laravel 5 和 Eloquent 时遇到问题。我有 3 个模型,分别称为 Ad、AdEngine 和 Engine:
class Ad
{
...
public function engineAd()
{
return $this->belongsTo('App\Models\EngineAd', 'engine_ad_id', 'id');
}
...
}
class EngineAd
{
...
public function engine()
{
return $this->belongsTo('App\Models\Engine', 'engine_id', 'id');
}
...
}
class Engine {...}
Run Code Online (Sandbox Code Playgroud)
在我的 Ad Class 中,我有一个名为 title 的方法,它使用了所属关系关系,如下所示:
public function title()
{
return $this->engineAd->engine->title;
}
Run Code Online (Sandbox Code Playgroud)
对于第一个关系 Ad -> AdEngine,我使用预先加载来获取所有 AdEngine:
$ads = Ad::with('engineAd');
Run Code Online (Sandbox Code Playgroud)
但是对于关系 AdEngine -> Engine,Laravel 会为每次迭代生成一个额外的查询,我可以在这里使用预先加载或类似的东西吗?
select * from `engine` where `engine`.`id` = '1' limit 1 …Run Code Online (Sandbox Code Playgroud) 我想要一个列表,其中包含同一订阅下的所有用户帖子。所以我有一个订阅表,用户表和发布表。
帖子属于用户,用户属于订阅。
我在laravel.com上阅读到,我可以使用全局查询范围。
SQL将是(我认为):
SELECT * FROM posts INNER JOIN users ON posts.user_id = users.id INNER JOIN subscriptions ON users.subscription_id = subscriptions.id WHERE subscriptions.id = $subscription_id_of_user_that_is_logged_in
Run Code Online (Sandbox Code Playgroud)
我必须在范围文件中放入什么?
public function apply(Builder $builder, Model $model) {
return $builder->where(????);
}
Run Code Online (Sandbox Code Playgroud)
第二个问题:这是从其他订阅的其他用户“隐藏”帖子的好方法吗?
在我的应用程序中,我想在我的笔记本电脑APP_ENV=local和开发上运行时禁用CSRF APP_ENV=dev.无法通过routes.php或网络中间件来了解如何做到这一点.这是我的routes.php
Route::group(['middleware' => ['web']], function () {
Route::get('/', function () {
return view('welcome');
})->middleware('guest');
Route::group(['middleware' => 'auth'], function()
{
Route::resource('battles', 'BattlesController'); //, ['except' => ['index']]);
Route::resource('disputes', 'DisputesController');
Route::resource('messages', 'MessagesController');
});
});
Run Code Online (Sandbox Code Playgroud)
我可以使用一些env文件加载魔法来确保应用程序加载任何一个.local.ev, .dev.env, .test.env, .production.env但我仍然必须找到一种方法来确保web中间件仅包含CSRF时不在本地或开发
laravel ×10
php ×9
laravel-5 ×6
eloquent ×3
laravel-4 ×2
laravel-5.2 ×2
controller ×1
laravel-5.1 ×1
middleware ×1
routes ×1