我正在使用以下代码从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 db:seed我收到以下错误:
The use statement with non-compound name 'DB' has no effect
我根据文档的片段编写了我自己的播种文件,我在下面列出了该文件.正如您所看到的,我正在使用use DB快捷方式 - 这就是问题所在吗?
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use DB;
class ClassesTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('classes')->delete();
DB::table('classes')->insert([
'class_name' => 'Test course 111',
'class_id' => '1',
'location_name' => 'Barnes',
'location_id' => '1',
'date' => '2015-06-22',
'month' => '06/2015',
'start_time' => '08:00',
'end_time' …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Laravel 5中的视图模板上显示会话数据.但它似乎没有显示任何内容.
这是我用来设置会话的代码:
Session::set('bookingConfirmed', BookingDates::where('id', Session::get('bookingFormData.slot.id'))->first());
Run Code Online (Sandbox Code Playgroud)
这是我用来显示的代码:
{{ Session::get('bookingConfirmed->time') }}
Run Code Online (Sandbox Code Playgroud) 我想在Laravel 5.1中刷新并播种单个表.这甚至可能吗?
我已经尝试过以下内容,但它会出错(语法不正确).
php artisan migrate:refresh --path=database/migrations/CreateTableTimesheet
Run Code Online (Sandbox Code Playgroud)
如果我使用:php artisan migrate:refresh它只是说:
什么都没有迁移
我试图让Laravel 5.1删除我的cookie,但是即使我用我的重定向返回它也不会删除它.
return redirect('/voucher')->withCookie(Cookie::forget($cookie));
Run Code Online (Sandbox Code Playgroud)
我做错了什么吗?
我的数据库中有一个timesheet表和一个user表.在timesheet模型上设置以下关系.
/**
* The user that owns the timesheet.
*
* @return Object
*/
public function user()
{
return $this->belongsTo('App\Models\User\User');
}
Run Code Online (Sandbox Code Playgroud)
以上意味着当我通过使用以下内容从数据库中选择时间表时,我可以获取用户数据:
$this->timesheet->whereStatus('Approved')->with('user');
Run Code Online (Sandbox Code Playgroud)
这将在结果中加载用户对象,如果转换为数组将如此;
0 => array:13 [?
"id" => 1
"user_id" => 2
"week" => 1
"year" => 2016
"week_ending" => "Sunday 10th January 2016"
"total_hours" => "45.00"
"token" => "0e6796a2dc68066c8d36ff828c519af00657db02b733309b8a4ac0f7b5d6a385"
"status" => "Approved"
"supervisor_id" => 1
"approved_by" => 1
"created_at" => "2016-01-13 15:42:49"
"updated_at" => "2016-01-14 14:52:07"
"user" => array:7 [?
"id" …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中设置了以下模型/表格;
时间表
用户
supervisor_user
用户通过supervisor_user数据透视表"分配"给主管.
我在User模型上设置了以下关系,它可以获得主管用户.
/**
* The supervisors that are assigned to the user.
*
* @return Object
*/
public function supervisors()
{
return $this->belongsToMany('App\Models\User\User', 'supervisor_user', 'user_id', 'supervisor_id')->withTimestamps();
}
Run Code Online (Sandbox Code Playgroud)
我想设置另一个关系,它将一个时间表列表"分配"给主管.我猜是hasManyThrough关系...但不完全是如何为它编写代码.
我怎样才能达到我的需要?
如何将当前登录的用户模型注入我的控制器?
例如,在我的控制器中,我目前有:
public function update(SaveAccountRequest $request)
{
$user = User::findOrFail(Auth::user()->id);
$user->first_name = $request->get('first_name');
$user->last_name = $request->get('last_name');
$user->email = $request->get('email');
if($request->has('password')) {
$user->password = Hash::make($request->get('password'));
}
$user->save();
return redirect('/admin/account')->with('success', 'Your details have been saved.');
}
Run Code Online (Sandbox Code Playgroud)
但不是这条线:
$user = User::findOrFail(Auth::user()->id);
Run Code Online (Sandbox Code Playgroud)
将User模型注入我已在登录用户中加载的控制器会很好,所以我可以这样做:
public function update(SaveAccountRequest $request, User $user)
{
$user->first_name = $request->get('first_name');
$user->last_name = $request->get('last_name');
$user->email = $request->get('email');
if($request->has('password')) {
$user->password = Hash::make($request->get('password'));
}
$user->save();
return redirect('/admin/account')->with('success', 'Your details have been saved.');
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在尝试选择日期等于今天的日期时间字段.但是,查询永远不会返回任何行.
我在我的数据库中有这一行:
id booked_at
1 2015-08-05 09:10:56
Run Code Online (Sandbox Code Playgroud)
我正在使用的查询是:
select date(`booked_at`) from `booking_dates` where booked_at = CURDATE();
Run Code Online (Sandbox Code Playgroud)
为什么这不会返回上面的行?
我在Laravel 5.1中设置了全局范围,工作正常.但是在我的一些页面上,我joins使用Eloquent构建器使用MySQL .这会导致一个模棱两可的错误:
Column 'cust_id' in where clause is ambiguous
Run Code Online (Sandbox Code Playgroud)
我不知道如何避免这个问题.我知道我可以使用子查询,但没有其他解决方案吗?
这是我的范围文件:
<?php
namespace App\Scopes;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\ScopeInterface;
use App\Customers;
use DB, Session;
class MultiTenantScope implements ScopeInterface
{
/**
* Create a new filter instance.
*
* @param UsersRoles $roles
* @return void
*/
public function __construct()
{
$this->custId = Session::get('cust_id');
}
/**
* Apply scope on the query.
*
* @param Builder $builder
* @param Model $model
* @return void
*/
public function apply(Builder …Run Code Online (Sandbox Code Playgroud)