我有一个Eloquent模型,它有一个相关的模型:
public function option() {
return $this->hasOne('RepairOption', 'repair_item_id');
}
public function setOptionArrayAttribute($values)
{
$this->option->update($values);
}
Run Code Online (Sandbox Code Playgroud)
当我创建模型时,它不一定具有相关模型.当我更新它时,我可能会添加一个选项.
所以我需要检查相关模型是否存在,分别更新或创建它:
$model = RepairItem::find($id);
if (Input::has('option')) {
if (<related_model_exists>) {
$option = new RepairOption(Input::get('option'));
$option->repairItem()->associate($model);
$option->save();
$model->fill(Input::except('option');
} else {
$model->update(Input::all());
}
};
Run Code Online (Sandbox Code Playgroud)
<related_model_exists>我正在寻找的代码在哪里.
我阅读文档的Laravel网站,堆栈溢出,并且谷歌,但还是不明白之间的差别Route::resource和Route::controller.
其中一个答案说Route :: resource是为了crud.但是,使用Route :: controller,我们可以完成与Route :: resource相同的操作,我们只能指定所需的操作.
他们看起来像兄弟姐妹:
Route::controller('post','PostController');
Route::resource('post','PostController');
Run Code Online (Sandbox Code Playgroud)
我们如何选择使用什么?什么是好习惯?
我正在使用以下代码从Laravel 5中获取数据库中的一些结果.
BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()
Run Code Online (Sandbox Code Playgroud)
但是,orWhereLike似乎不匹配任何结果.该代码在MySQL语句方面产生了什么?
我正在尝试实现以下内容:
select * from booking_dates where email='my@email.com' or name like '%John%'
Run Code Online (Sandbox Code Playgroud)
提前致谢.
问题很清楚.
php artisan cache:clear
Run Code Online (Sandbox Code Playgroud)
是否有任何解决方法来清除缓存,就像我们在CLI中使用的那样.我正在使用流行的共享托管服务,但根据我的计划,我没有控制面板访问权限.
**我想清除视图缓存.**
我看到了一个与此几乎相同的问题,但它对我没有帮助.
提前致谢.
我想在Laravel 5应用程序的所有视图中都可以访问一些默认数据.
我试图搜索它,但只找到Laravel 4的结果.我在这里阅读了文档"与所有视图共享数据" ,但我无法理解该怎么做.下面的代码应该放在哪里?
View::share('data', [1, 2, 3]);
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在Laravel的一个项目中工作,我在.env文件设置中存储了一些设置,就像用于测试目的的几个参数一样,很少有参数用于实时工作所以我只是检查是否有任何方法可以在Laravel的.env文件中进行评论.
这是一个例子
/* Test Settings */
ACCESS_KEY=qwsdr
ACCESS_TOKEN=Bgcvfsx
/* Live Settings */
ACCESS_KEY=985AsdefG
ACCCESS_TOKEN=LFP994kL
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我想在Laravel中获取客户端的IP地址.众所周知,使用PHP获取客户端的IP要容易得多$_SERVER["REMOTE_ADDR"].
它在核心PHP中运行良好,但是当我在Laravel中使用相同的东西时,它会提供服务器IP而不是访问者IP.
最近我开始用laravel 5.3来写博客,但是我跑完后有一个问题 php artisan make:auth
当我运行它时,它将生成我的路线 web.php
这是其中的代码:
Auth::routes();
Route::get('/home', 'HomeController@index');
Run Code Online (Sandbox Code Playgroud)
然后我跑php artisan route:list,我发现很多动作,比如LoginController @ login ...
但我没有在我的身上找到这些动作App\Http\Controllers\Auth,这些是哪里?
还有什么是Auth::routes()代表,我找不到关于Auth的路线.
我需要别人的帮助,谢谢你回答我的问题
在我的第一个Laravel 5项目上工作,不确定在我的应用程序中强制使用HTTPS的逻辑位置和方式.这里的关键是有许多域指向应用程序,只有三分之二使用SSL(第三个是后备域,长篇故事).所以我想在我的应用程序逻辑而不是.htaccess中处理这个问题.
在Laravel 4.2中,我使用此代码完成了重定向,位于filters.php:
App::before(function($request)
{
if( ! Request::secure())
{
return Redirect::secure(Request::path());
}
});
Run Code Online (Sandbox Code Playgroud)
我认为中间件应该在这样的地方实现,但我不能完全理解这一点.
谢谢!
UPDATE
如果您像我一样使用Cloudflare,可以通过在控制面板中添加新的页面规则来实现.
在我的routes.php档案中,我有:
Route::get('/', function () {
return view('login');
});
Route::get('/index', function(){
return view('index');
});
Route::get('/register', function(){
return view('register');
});
Route::post('/register',function(){
$user = new \App\User;
$user->username = input::get('username');
$user->email = input::get('email');
$user->password = Hash::make(input::get('username'));
$user->designation = input::get('designation');
$user->save();
});
Run Code Online (Sandbox Code Playgroud)
我有一个用户注册表.我也在表格中输入表格输入值routes.php.
但是当我注册用户时出现错误.错误:
FatalErrorException in routes.php line 61:
Class 'input' not found
Run Code Online (Sandbox Code Playgroud) laravel-5 ×10
php ×9
laravel ×8
laravel-4 ×2
laravel-5.1 ×2
eloquent ×1
laravel-5.2 ×1
laravel-5.3 ×1
laravel-5.7 ×1
mysql ×1