我有3个域指向相同的Laravel应用程序.我想要的是每个人连接到自己的数据库并根据TLD加载自己的语言文件.我可以在哪里设置这些设置的文件?我可以直接在配置文件中执行此操作,也可以在加载配置之前执行某些操作.
我所拥有的是一个简短的函数,它将解析域并获得TLD,在此基础上,经过快速验证后,我们将知道将使用哪种数据库和语言.
你如何为一个雄辩的模型添加别名?例如,如果我有一个SQL查询,如下所示:
SELECT one.name
, one.id
, one.name AS sortkey1
, CAST(NULL AS UNSIGNED) AS sortkey2
, CAST(NULL AS UNSIGNED) AS sortkey3
FROM locations AS one
WHERE one.parent_id = 0
UNION ALL
....
Run Code Online (Sandbox Code Playgroud)
在我的存储库中,我会有如下内容:
$first = $this->model->where('one.parent_id', '=', 0)
->select('one.name'
, 'one.id'
, 'one.name AS sortkey1'
, DB::raw('CAST(NULL AS UNISIGNED) AS sortkey2')
, DB::raw('CAST(NULL AS UNISIGNED) AS sortkey3'));
Run Code Online (Sandbox Code Playgroud)
那么你如何为模型添加别名呢.在上面的示例中,模型映射了位置表,在我的雄辩查询中,我希望将其one替换为,而不是locations
在我的应用程序中,我想在我的笔记本电脑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时不在本地或开发
我有以下代码
$user = User::findByAccountCode($transaction->account_code);
Run Code Online (Sandbox Code Playgroud)
当我在 phpunit 上执行这段代码时,它返回一个 Illuminate\Database\Eloquent\Builder 的实例而不是用户模型。
这是 findByAccountCode 的代码
public function scopeFindByAccountCode($query,$account_code){
return $query->where('account_code', $account_code)->first();
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序出现以下错误
ErrorException: 传递给 aunicaj\Libraries\MarkupRepository::user() 的参数 1 必须是 aunicaj\Models\User 的实例,给定的 Illuminate\Database\Eloquent\Builder 实例
当我使用浏览器时,它工作正常,但在 phpunit 上却没有。谢谢
我知道我可以使用此查询减少laravel中的列值
DB::table('users')->decrement('votes', 5);
Run Code Online (Sandbox Code Playgroud)
但是我想限制该值成为负值。
无论如何,laravel可以做到这一点吗?
假设我有一个Conversation这样的模型:
class Conversation extends Model
{
public function questions (){
return $this->hasMany('App\Question','conversation_id','conversation_id');
}
public function category ()
{
return $this->belongsTo('App\Category', 'cat', 'cat_id');
}
}
Run Code Online (Sandbox Code Playgroud)
和这样的Question模型:
class Question extends Model
{
public function conversation ()
{
return $this->belongsTo('App\Conversation', 'conversation_id', 'conversation_id');
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,这hasMany两者之间存在关系。
另一方面,Category下面有一个与Conversation模型有关系的类似:
class Category extends Node
{
public function conversations (){
return $this->hasMany('App\Conversation','cat','cat_id');
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想附加一个名为question_countto的属性,Category该属性计算每个类别的所有对话问题。为此,我添加了以下内容:
public function getQuestionsCountAttribute ()
{
return $this->conversations->questions->count();
}
Run Code Online (Sandbox Code Playgroud)
但是当获取一个类别时,我收到了这个错误: …
执行迁移时,在Windows控制台中执行以下命令:
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
当我运行该命令时,它显示以下错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Market\Providers\Schema' not found
Run Code Online (Sandbox Code Playgroud)
如果有人能帮助我,我将非常感激.
我希望禁用特定域的 CSRF 验证令牌。例如,我的 EC2 实例。这样我就可以在我的 EC2 实例上运行实时跨浏览器测试,而不会出现任何问题。
我找到了很多有关更新VerifyCsrfToken应用程序内特定路由的中间件目录的信息,但没有找到有关如何检查主机或域的信息。我可以/*在受保护的 URI 中使用。
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'/*'
];
}
Run Code Online (Sandbox Code Playgroud)
然而,出于显而易见的原因,我不想使用这种方法。
我使用的是标准 Laravel 5.3 设置,因此使用了该框架附带的常用中间件文件。
任何帮助,将不胜感激!
我跑到命令之下
php artisan make:factory AddressFactory
我的结果低于结果
$factory->define(Model::class, function (Faker $faker) {
但我想得到如下结果
$factory->define(App\Address::class, function (Faker $faker) {
我该怎么办 ?
public function register() {
$this->app->singleton('Qwerty', function ($app) {
return new QwertyManager();
});
}
Run Code Online (Sandbox Code Playgroud)
这就是我的单例类现在的样子,我想重置单例对象或通过 laravel 销毁它的实例。我正在使用 5.3
laravel ×10
php ×9
laravel-5 ×8
eloquent ×4
laravel-5.2 ×2
csrf ×1
database ×1
destroy ×1
factory ×1
laravel-5.1 ×1
laravel-5.3 ×1
laravel-5.5 ×1
phpunit ×1
singleton ×1
sql ×1