Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database Laravel:用一种方法创建两个表_Database_Laravel 5_Web - Fatal编程技术网

Database Laravel:用一种方法创建两个表

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"])

我有两张桌子(照片和服务) 服务具有照片id作为forien密钥,我想创建照片和服务,其中包括照片id在同一时间

这是我的控制器

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;


    }
}