我正在使用 Laravel 5.3 开发 Web 应用程序。我现在遇到了 Laravel 查询构建器方法 whereIn 的问题。这是我的场景:
我有这样的桌子。
student - id, name, dob
course - id, code
student_course - student_id, course_id
Run Code Online (Sandbox Code Playgroud)
我想要做的是让学生通过 student_course 表的 course_id 搜索而不加入任何表。在手动查询中,我喜欢这样。
SELECT * FROM `student` WHERE `student`.`id` IN (SELECT `student_id` FROM `student_course` WHRE `course_id`= ?)
Run Code Online (Sandbox Code Playgroud)
所以现在当我尝试将它转换为 Laravel 查询构建器时,我遇到了问题。这是我的代码:
DB::table('student')->whereIn('id',[ "Here I want to run sub query" ])->get();
Run Code Online (Sandbox Code Playgroud)
正如您在 whereIn() 的第二个参数中所见,我遇到了问题。在这种情况下,我是否需要运行原始查询?如何将原始查询作为第二个参数运行?如果不是,我怎样才能在像上面这样的一个查询中按 course_id 过滤而不加入任何表?
我正在开发一个 ASP.NET MVC 项目。我正在使用实体框架代码优先方法与数据库交互。但我在为实体的自引用外键设置级联删除时遇到问题。
这是我的带有自引用外键的实体类
public class Category
{
public int Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
[MaxLength(55)]
public string MmName { get; set; }
public int? ParentId { get; set; }
[ForeignKey("ParentId")]
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这是我的背景
public class StoreContext : DbContext
{
public StoreContext():base("DefaultConnection")
{
}
public DbSet<Category> Categories { get; set; }
protected override void OnModelCreating(DbModelBuilder …Run Code Online (Sandbox Code Playgroud) asp.net entity-framework foreign-keys ef-code-first entity-framework-migrations
我正在开发一款Android应用.在我的应用程序中,我使用自定义视图的快餐栏.我的自定义视图只有子视图.这是一个图像视图.用小吃店显示自定义视图是可以的.但问题是在小吃店中调整ImageView的大小.我想将它设置为匹配父项.但宽度与小吃店的宽度不匹配.请参阅下面的方案.
这是我的小吃店的自定义视图布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:scaleType="centerCrop"
android:id="@+id/snackbar_ad_image"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
这就是我在活动中展示小吃店的方式
private void showSnackbarAd(View view,Ad ad)
{
final Snackbar snackbar = Snackbar.make(view,"",Snackbar.LENGTH_LONG);
Snackbar.SnackbarLayout layout = (Snackbar.SnackbarLayout)snackbar.getView();
TextView textView = (TextView) layout.findViewById(android.support.design.R.id.snackbar_text);
textView.setVisibility(View.INVISIBLE);
View snackView = getLayoutInflater().inflate(R.layout.snack_bar_ad,null);
ImageView imageView = (ImageView)snackView.findViewById(R.id.snackbar_ad_image);
Picasso.with(getBaseContext()).load(ad.getImageUrl()).into(imageView);
layout.addView(snackView, 0);
snackbar.show();
}
Run Code Online (Sandbox Code Playgroud)
我想要的是我想要ImageView相同宽度的小吃吧.但我的代码不起作用.
这就是我得到的.
如何使用Snackbar将ImageView设置为相同的宽度并适合小吃吧?
我正在开发一个网络应用程序。在我的应用程序中,我正在实现文件上传功能。我将上传的文件存储在 aws s3 存储桶中。我将文件上传到 s3 存储桶,如下所示。
$photo_file_path = $request->file('image_file')->store(
'images/artworks/gallery-images/'.uniqid(), 's3'
);
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常。文件上传到s3。但问题是我希望文件在上传到 s3 时是公开的,这样照片也可以从 url 访问。我将存储桶策略和访问控制都设置为 public。
这是我的存储桶策略
{
"Version": "2012-10-17",
"Id": "Policy1234566788",
"Statement": [
{
"Sid": "Stmt151234344545",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket"
}
]
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的存储桶现在对于访问控制和存储桶策略都是公开的。

但是当我从 Laravel 上传文件时,它被上传到存储桶,但该文件仍然对公众隐藏。那么,上传文件后如何将文件权限更改为公开?
I am planning to develop a web application using Laravel and Nova. Nova is a CMS package for Laravel introduced very very recently. Since it is the new technology, I am having an issue with using it. I cannot declare a field for the foreign key in the resource.
I created a new model called, Post running the artisan command to make model and this is the definition of the Post migration class.
class CreatePostsTable extends Migration
{
/**
* …Run Code Online (Sandbox Code Playgroud) 我正在开发 Laravel 应用程序并编写测试。现在,我在编写测试时遇到问题,该测试断言在触发雄辩模型事件时是否触发事件。这就是我正在做的事情。
这是我的 ItemObserver 创建的函数
public function created(Item $item)
{
event(new NewItemCreated($item));
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我正在雄辩模型观察者的创建事件内触发一个事件。
如果我想断言测试中是否触发了事件,我必须伪造该事件,然后断言类似这样的事情。
Event::fake();
factory(Item::class)->create(); //created function of observer should be triggered but it will not be
Event::assertDispatched(NewItemCreated::class);
Run Code Online (Sandbox Code Playgroud)
正如您在测试代码中看到的,我试图断言创建项目时是否触发事件。但是测试永远不会通过,因为观察者类的创建函数永远不会被调用,因为事件在测试中是伪造的。我如何测试这个场景?
我正在练习AWS命令。我的客户给了我 AWS IAM 访问密钥和秘密,但没有给我可以登录管理面板的帐户。这些密钥正在与项目本身一起使用。我想做的是尝试列出 S3 存储桶中递归的所有文件。
这就是我到目前为止所做的。
我已使用以下命令配置 CLI 的 AWS 配置文件
aws configure
Run Code Online (Sandbox Code Playgroud)
然后我可以通过运行以下命令列出所有可用的存储桶
aws s3 ls
Run Code Online (Sandbox Code Playgroud)
然后我尝试列出存储桶中的所有文件。我尝试运行以下命令。
aws s3 ls s3://my-bucket-name
Run Code Online (Sandbox Code Playgroud)
但它似乎没有给我正确的内容。另外,我还需要一种在存储桶中导航的方法。我怎样才能做到这一点?
我开始使用 Laravel 8 构建一个 Web 应用程序。我注意到 Laravel 8 中发生了一些变化,包括模型工厂。现在,我正在使用模型工厂编写单元测试。但是当我使用 faker 伪造字段时,它会抛出错误。
这是我的测试方法。
public function testHasRoleReturnsTrue()
{
$user = User::factory()->create();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我现在要做的就是尝试使用 factory 创建用户。这是我的用户模型工厂类。
<?php
namespace Database\Factories;
use App\Models\User;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Support\Str;
class UserFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = User::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->name,
'email' => …Run Code Online (Sandbox Code Playgroud) 我正在构建一个 React Native 应用程序。我正在使用 React Navigation,https://reactnavigation.org/进行导航。现在,我正在努力删除当前屏幕或屏幕历史记录,就像在本机 Android 中一样。
我尝试像下面这样重置它。
props.navigation.reset({
index: 0,
routes: [{ name: "ItemDetails" }]
})
Run Code Online (Sandbox Code Playgroud)
我在 ItemList 屏幕中调用该代码。但从主屏幕登陆到项目列表屏幕。如果我使用该代码,主屏幕也会从堆栈中删除。但我只想从堆栈中删除 ItemList 并保留主屏幕。我怎样才能做到这一点?
我正在使用 Flutter 构建 IOS 和 Android 应用程序。我的应用程序需要在应用程序关闭时运行一个后台任务(假设大约每 15 分钟运行一次)。然后显示通知。我正在关注这篇文章,https://www.geeksforgeeks.org/background-local-notifications-in-flutter/ ?fbclid=IwAR0sKCVATW068AxuRIyDO693vcqwU0VTPVl1bgVkM3J3EGCHExv8P13dvz4 。所以,我正在使用这个库,https://pub.dev/packages/workmanager。它适用于 Android,但不适用于 IOS。
这是我的代码。
void main() {
// needed if you intend to initialize in the `main` function
WidgetsFlutterBinding.ensureInitialized();
Workmanager().initialize(
// The top level function, aka callbackDispatcher
callbackDispatcher,
// If enabled it will post a notification whenever
// the task is running. Handy for debugging tasks
isInDebugMode: true
);
// Periodic task registration
Workmanager().registerPeriodicTask(
"2",
//This is the value that will be
// returned in the callbackDispatcher …Run Code Online (Sandbox Code Playgroud) laravel ×5
amazon-s3 ×2
android ×1
asp.net ×1
aws-cli ×1
entity-framework-migrations ×1
faker ×1
flutter ×1
foreign-keys ×1
ios ×1
laravel-8 ×1
laravel-nova ×1
mysql ×1
php ×1
react-native ×1
snackbar ×1
where-in ×1