简介:我无法在whereHas函数(如下)中访问$ domain变量;Laravel返回以下错误:
“未定义的变量:域”
我之所以加入我的人际关系,是因为我不确定雄辩的性质以及我如何尝试调用此查询是否会引起问题。
我有一个称为模型(Org)的中间件
组织模型有字段
子域
组织模型有
public function domains()
{
return $this->hasMany('App\Domain');
}
Run Code Online (Sandbox Code Playgroud)
域模型(表名域)具有字段
域,org_id
也有功能
public function org()
{
return $this->belongsTo('App\Org');
}
Run Code Online (Sandbox Code Playgroud)
我可以dd($domain);
在此功能之前没有任何问题。但是,我正在
“未定义的变量:域”
下面的whereHas函数中的查询参数。
laravel为什么看不到上面设置的变量?
namespace App\Http\Middleware;
use Closure;
class DomainLookup
{
protected $org;
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$route = $request->route();
$domain = $route->parameter('domain');
$trimmed_domain = trim($domain, (config('app.domain')));
$this->org = \App\Org::where('subdomain',$trimmed_domain) …
Run Code Online (Sandbox Code Playgroud) 我使用Laravel 5.2版,不知道如何将Laravel默认页面重定向到我的模板404页面
当我添加基本路线(foo)时会发生这种情况.其余路线按预期工作.这会生成NotFoundHttpException和ModelNotFoundException.
应用程序/ HTTP/routes.php文件:
Route::auth();
Route::get('/home', 'HomeController@index');
Route::get('/index','WosController@index');
Route::get('/create','WosController@create');
Route::get('/{workorder}','WosController@show');
Route::post('/create','WosController@store');
Route::get('/', function () {
return view('welcome');
});
Route::get('/foo', function () {
return view('foo');
});
Run Code Online (Sandbox Code Playgroud)
应用程序/资源/视图/ foo.blade.php:
<p>foo</p>
Run Code Online (Sandbox Code Playgroud) 如何将结果从eloquent转换为关联数组.我需要选择拖曳列,并将一个作为键,另一个作为值.这是我得到的壁橱,但值是一个数组.我希望它只是"my_value"列.
$array = Post::select('my_key','my_value')->get()->keyBy('my_key')
Run Code Online (Sandbox Code Playgroud) 我在 public/image 目录中有一些图像文件,所以我想在保存新文件之前确定该目录中是否存在文件。如何判断文件是否存在?
我试图了解如何通过Laravel中的URL传递参数。
就我而言,我有一个主页(/)(HomeController @ get__home并查看主页),其中包含从数据库表获取的n个数据。用户可以选择其中一个并转到下一页。
第二个url页面是/ {从首页的参数} /登录
{首页的参数}字段来自(当然)首页,并取决于选择的记录。
我已经读过这篇文章,但是我认为我不建议这样做。
我找不到将参数传递给url的方法。
在我的Route.php中:
Route::get("/", "HomeController@home");
Route::get("/{position}/login", "LoginController@login");
Run Code Online (Sandbox Code Playgroud)
在控制器中:
class HomeController extends Controller
{
public function home(){
$foos = Foo::all();
return view('home')->with('foos',$foos);
}
}
class LoginController extends Controller
{
public function login(Foo $foo)
{
return view('login');
}
}
Run Code Online (Sandbox Code Playgroud)
并在home.blade.php中
<form class="" action="{{action(LoginController@login)}}" method="post">
...
Run Code Online (Sandbox Code Playgroud) 我为 laravel 创建了一个 Pivot 模型和表,并为 Pivot 模型添加了额外的字段。但是在调用数据透视表时不会显示额外的字段。
我有一个客户模型和标签模型。一个名为 CustomerTag 的数据透视表使用标签创建了一个用户,并使用
$user = User::create([
'name' => 'User 1'
]);
$tag = 1;
$user->tags()->attach($tag, ['priority' => 1]);
Run Code Online (Sandbox Code Playgroud)
但是当我调用结果时
$use = User::find($id);
dd($user->tags->pivot);
Run Code Online (Sandbox Code Playgroud)
结果没有priority
字段。
我正在尝试使用belongsToMany关系,我从来没有遇到任何问题,但由于某种原因它返回空.
我在Store模型中建立了我的关系,如下所示:
public function images()
{
return $this->belongsToMany('App\Images', 'images_stores', 'image_id', 'store_id');
}
Run Code Online (Sandbox Code Playgroud)
当我测试关系时,它只返回一个空集合没有错误,尽管它不是.这是我访问数据的方式:
public function edit($id)
{
$store = Store::find($id);
dd($store->images);
return view('admin.pages.store.edit', compact('store'));
}
Run Code Online (Sandbox Code Playgroud)
但它只会返回一个空集合,我希望有人可以帮我解决这个问题.这些是我的迁移文件,但我认为问题不在迁移文件中.
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('path');
$table->timestamps();
});
// pivot table
Schema::create('images_stores', function (Blueprint $table) {
$table->increments('id');
$table->integer('image_id')->unsigned()->nullable();
$table->foreign('image_id')->references('id')->on('images')->onDelete('cascade');
$table->integer('store_id')->unsigned()->nullable();
$table->foreign('store_id')->references('id')->on('stores')->onDelete('cascade');
$table->timestamps();
});
// store table
Schema::create('stores', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->string('location');
$table->string('email');
$table->timestamps();
});
Run Code Online (Sandbox Code Playgroud)
多谢你们.
我有来自日期选择器的时间,如下所示:2017-12-10T14:40:18.492Z。我尝试在 Laravel 中使用下面的代码将其转换为 MySQL 日期格式,但它抛出错误说 (1/1) FatalThrowableError Class 'iirs_demo\Http\Controllers\DateTime' not found
<?php $date = new DateTime('2000-01-01'); echo $date->format('Y-m-d H:i:s'); ?>
Run Code Online (Sandbox Code Playgroud)
请问,我该如何解决?
谢谢。
您将如何以 Laravel 风格编写以下查询?
SELECT * FROM `job_details` WHERE `job_title` LIKE '%officer%' AND `category_id` = 1 AND `city_id` = 1
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但它不起作用:
DB::(job_details)->where(job_title LIKE '%officer%')->and(category_id=1)->and(city_id=1)
Run Code Online (Sandbox Code Playgroud) laravel ×10
php ×8
laravel-5 ×7
eloquent ×2
laravel-5.2 ×2
datepicker ×1
datetime ×1
laravel-5.3 ×1
laravel-5.5 ×1
mysql ×1