我在Laravel项目中遇到迁移问题.
因为我对Laravel相当新,所以我无法理解.
我想将一个外键添加到现有的表中,这样可行,但是当我刷新迁移时,我收到此错误:
[Illuminate\Database\QueryException]
SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key
constraint fails (SQL: drop table `battles`)
[PDOException]
SQLSTATE[23000]: Integrity constraint violation: 1217 Cannot delete or update a parent row: a foreign key
constraint fails
Run Code Online (Sandbox Code Playgroud)
这些是我目前的迁移:
表项目
class CreateProjectsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('projects', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('body');
$table->string('tags');
$table->string('img');
$table->string('img_tricolor');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->timestamps();
});
} …Run Code Online (Sandbox Code Playgroud) 上下文
我使用Laravel的雄辩如我的ORM.我创建了一个API端点提供访问Cars其有几个属性(color,make,status).
我的端点允许客户端通过这些属性的任何子集过滤返回值,如果它们不提供任何属性,那么我将返回所有内容.
问题
我想构建一个条件查询,它从"全部"开始,并根据指定的参数缩小.这是我写的:
public function getCars(Request $request)
{
$results = Cars::all();
if($request->has('color'))
$results = $results->where('color', $request->input('color'));
if($request->has('make'))
$results = $results->where('make', $request->input('make'));
if($request->has('status'))
$results = $results->where('status', $request->input('status'));
return $results->toJson();
}
Run Code Online (Sandbox Code Playgroud)
如果我在没有参数的情况下调用它,API将返回数据库中所有汽车的列表.但是,如果我指定(例如)0API的状态返回一个空集,尽管有些汽车的状态为0.
我接近这个错误吗?有什么根本我缺席的吗?
请注意,如果我改为:
$results = Cars::where('status', 0);
return $results->get();
Run Code Online (Sandbox Code Playgroud)
正确生成汽车列表
我在尝试存储和获取会话中的项目时遇到了一个小问题。我正在使用一个 API,并尝试将此 api 的结果缓存到会话中。
问题是 API 通常会返回我尝试缓存的域名,google.com然后返回该域的值。
Session::put($domain, $value)不幸的是,当我使用然后 return存储它时Session::all(),数组如下所示......
array(
'google' =>
'com' => 'my_value'
)
Run Code Online (Sandbox Code Playgroud)
我真的需要它...
array(
'google.com' => 'my_value'
)
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,点符号破坏了数组依赖的完整性。
我在Route下面检查用户是否经过身份验证,然后让他们访问该页面
<?php
Route::group([
'middleware' => 'auth',
], function() {
Route::get('/Categories-List', 'Skills\Category_Controller@index');
});
Run Code Online (Sandbox Code Playgroud)
在我看来auth()->user(),RoleID要检查用户是管理员还是其他角色.我想检查是否RoleID为1然后只让他们访问该页面.
我可以在Laravel 5.1中设置授权和身份验证
嗨,我有介入图像的问题.当我使用composer update或
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
Run Code Online (Sandbox Code Playgroud)
我有错误:
[Symfony\Component\Debug\Exception\FatalErrorException]
未找到类'Intervention\Image\ImageServiceProvider'**
你有没有想法?我做了一切来自http://image.intervention.io/getting_started/installation,我不知道我现在该怎么办,请帮帮我:)
在我的 Laravel 应用程序中,每当我转到此路由时:/admin 或 admin/users 我收到以下错误消息,但其他路由的工作方式类似于 admin/users/create 或 admin/users/edit:
Missing required parameters for [Route: admin.users.edit] [URI: admin/users/{id}/edit]. (View: C:\xampp\htdocs\CMS\resources\views\admin\index.blade.php)
Run Code Online (Sandbox Code Playgroud)
请注意,我没有包含 index.blade.php 的所有 html 代码,因为它太长了,唯一的刀片代码来自我粘贴的内容。
Index.blade 视图:
<ul class="nav nav-second-level">
<li>
<a href="{{route('admin.users.edit')}}">All Userss</a>
</li>
<li>
<a href="{{route('admin.users.create')}}">Create User</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
路线清单:
网址:
- admin/users
- admin/users/create
- admin/users/store
- admin/users/update
- admin/users/{id}/edit
Run Code Online (Sandbox Code Playgroud)
姓名:
1. admin.users.index
2. admin.users.create
3. admin.users.store
4. admin.users.update
5. admin.users.edit
Run Code Online (Sandbox Code Playgroud)
行动:
1. App\Http\Controllers\AdminUsersController@index
2. App\Http\Controllers\AdminUsersController@create
3. App\Http\Controllers\AdminUsersController@store
4. App\Http\Controllers\AdminUsersController@update
5. App\Http\Controllers\AdminUsersController@edit
Run Code Online (Sandbox Code Playgroud)
管理员/用户
路线:
Route::get('admin/users/', [
'uses' => …Run Code Online (Sandbox Code Playgroud) 我是Laravel的新手,并试图从它的方法(依赖)注入中获得最大的收益,同时也旨在保持良好的网址结构(对于搜索引擎优化).
情况就是这样:我正在调用一个附加了变量的路径,如下所示:www.mywebsite.com/user/id
这是用一个像这样的方法的控制器:
public function listUsers(User $user){
dd($user);
}
Run Code Online (Sandbox Code Playgroud)
那工作得很好; 如果我去www.mywebsite.com/user/3,Laravel将自动获取id = 3的用户
但是为了拥有更好的搜索引擎优化,我需要将这个网址更改为:www.mywebsite.com/users/nickname.
是否可以以类似于我当前使用的方式使用方法注入,但是使用除id之外的另一个字段(在本例中为昵称)来从数据库中获取User对象?
如果可能,我该怎么办?
我可以手动完成,但我希望从Laravel中获得最大收益.
感谢您的时间,而且,我正在学习英语,所以如果您是母语为英语或能够流利的话,如果您指出我的语法错误(简单而不歪曲帖子),我将不胜感激.
布鲁诺
请给我一个在 laravel 5.5 中将文件存储到 AWS S3 的示例。我已经使用 AWS 凭证配置了文件系统文件。
我看到了这个功能
Storage::put('file.jpg', $contents);
但不知道第二个参数是什么
filesystem.php文件内容如下
return [
'default' => env('FILESYSTEM_DRIVER', 'local'),
'cloud' => env('FILESYSTEM_CLOUD', 's3'),
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => '*********',
'secret' => '******',
'region' => 'my region',
'bucket' => 'bucketname',
],
],
];
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在使用Laravel API资源,并希望将实例的所有部分都转换为数组。
在我的PreorderResource.php:
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'exception' => $this->exception,
'failed_at' => $this->failed_at,
'driver' => new DriverResource(
$this->whenLoaded('driver')
)
];
}
Run Code Online (Sandbox Code Playgroud)
然后解决:
$resolved = (new PreorderResource(
$preorder->load('driver')
))->resolve();
Run Code Online (Sandbox Code Playgroud)
乍一看,该方法可以解决问题,但问题是它无法递归工作。我的资源解析如下:
array:3 [
"id" => 8
"exception" => null
"failed_at" => null
"driver" => Modules\User\Transformers\DriverResource {#1359}
]
Run Code Online (Sandbox Code Playgroud)
如何解析API资源以递归数组?
当我尝试安装Laravel 5.8时,它会抛出错误
在database.php第58行:
未定义的类常量'MYSQL_ATTR_SSL_CA'
在此之后,我试图在服务器上运行该应用程序.它有时很好.有时它会抛出同样的错误.我也无法在Artisan上运行任何命令.为什么会这样,以及如何解决这个问题?
laravel ×10
php ×8
laravel-5 ×4
eloquent ×2
laravel-5.1 ×2
amazon-s3 ×1
artisan ×1
blade ×1
composer-php ×1
laravel-5.3 ×1
laravel-5.4 ×1
laravel-5.5 ×1
laravel-5.6 ×1
laravel-5.7 ×1
laravel-5.8 ×1
mysql ×1
php-7.3 ×1
session ×1
sql ×1