Database Laravel:用一种方法创建两个表
我有两张桌子(照片和服务) 服务具有照片id作为forien密钥,我想创建照片和服务,其中包括照片id在同一时间 这是我的控制器Database Laravel:用一种方法创建两个表,database,laravel-5,web,Database,Laravel 5,Web,我有两张桌子(照片和服务) 服务具有照片id作为forien密钥,我想创建照片和服务,其中包括照片id在同一时间 这是我的控制器 public function store(Request $request) { $target_dir = public_path('uploading/'); if($request->hasFile('img')){ $imageFileType = strtolower($_FILES["img"]["type"])
public function store(Request $request)
{
$target_dir = public_path('uploading/');
if($request->hasFile('img')){
$imageFileType = strtolower($_FILES["img"]["type"]);
$uploadOk = 1;
$imageFileType = explode('/', $imageFileType)[1];
$target_file_name = md5(date('YmdHis') . basename($_FILES["img"]["name"]));
$target_file = $target_dir . $target_file_name . '.' . $imageFileType;
$check = getimagesize($_FILES["img"]["tmp_name"]);
if ($check != false) {
$uploadOk = 1;
} else {
$uploadOk = 0;
}
if ($imageFileType != "svg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
$i = 0;
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
if (move_uploaded_file($_FILES["img"]["tmp_name"], $target_file)) {
$photo = Photo::create(['photo' => $target_file_name. '.' . $imageFileType]);
Service::create([
'title'=>$request->title,
'description'=>$request->description,
'photo_id'=>$photo->id]);
echo "The file has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
}
}
下面有什么吗
$photo=photo::create();没有执行,我不知道为什么
我尝试dd($photo),echo($photo),但它没有返回任何结果
当我将service::create()放在if()之外时,它返回$photo undefined
任何人都可以看到我的代码有任何错误,这将非常有帮助。据我所知,如果您想将图像处理分离到控制器中的一个单独函数中,您可以轻松地在控制器中定义一个私有方法,并从存储方法调用它,如下所示,
$this->cropAndSaveImage($requestData)
,注意,您可以将请求数据作为参数传递,以获取图像详细信息
第二种方法是保存图像上传,通过ajax调用直接裁剪到特定的控制器方法,并将表单提交到另一个控制器方法
只是分享我的一篇博客文章,这可能会对你有所帮助。
您可能希望包含的与问题相关的任何示例代码i更新问题i执行此$this->cropAndSaveImage($requestData),但是如何在store方法中获取此$requestData?抱歉,但它返回null:(
public function store(Request $request)
{
$target_file_name = $this->cropAndSaveImage($request);
$title = $request->title;
$description = $request->description;
Service::create(['title'=>$title,'description'=>$description,'image'=>$target_file_name . '.' . $imageFileType]);
}
private function cropAndSaveImage(Request $request)
{
$target_dir = public_path('uploading/');
$target_file_name = '';
if($image = $request->hasFile('img')) {
$imageFileType = strtolower($_FILES["img"]["type"]);
$uploadOk = 1;
$imageFileType = explode('/', $imageFileType)[1];
$target_file_name = md5(date('YmdHis') . basename($_FILES["img"]["name"]));
$target_file = $target_dir . $target_file_name . '.' . $imageFileType;
$check = getimagesize($_FILES["img"]["tmp_name"]);
if ($check != false) {
$uploadOk = 1;
} else {
$uploadOk = 0;
}
if ($imageFileType != "svg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
} else {
move_uploaded_file($_FILES["img"]["tmp_name"], $target_file);
}
return $target_file_name;
}
}