问题描述
我正在尝试软删除四个关系表上的注册数据,但是它仅在前端(Vuetify)上有效。 我已经查看过Laravel文档和类似问题,但对我没有任何帮助。我真的是Laravel的新手。 这是我的模型:
<?PHP
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Agroindustria extends Model
{
use SoftDeletes;
protected $table = "agroindustria";
protected $primaryKey = "CodAgroindustria";
public $incrementing = false;
protected $keyType = 'string';
public $fillable = ['CodAgroindustria,Porte'];
public $hidden = ['created_at','updated_at','deleted_at'];
public function pessoa () {
return $this->setConnection('diana')->hasOne(Pessoa::class,'CodPessoa','CodAgroindustria');
}
public function pessoajuridica()
{
return $this->setConnection('diana')->hasOne(PessoaJuridica::class,'CodEndereco');
}
public function endereco()
{
return $this->setConnection('diana')->hasOne(PessoaJuridica::class,'CodEndereco','CodEndereco');
}
public function estado(){
return $this->setConnection('diana')->hasOne(Estado::class,'CodEstado','estado');
}
public function cidade(){
return $this->setConnection('diana')->hasOne(Cidade::class,'CodCidade','cidade');
}
}
这是我的控制器:
<?PHP
namespace App\Http\Controllers;
use Ramsey\Uuid\Uuid;
use Illuminate\Http\Request;
use Validator;
use App\Agroindustria;
use App\Endereco;
use App\Pessoa;
use App\PessoaJuridica;
class AgroindustriaController extends Controller
{
public function getAll () {
$user = auth()->user();
if ($user->TipoUsuario !== 1) {
return response()->json('Não autorizado',401);
}
$agroindustrias = Agroindustria::with([
'pessoa' => function ($query) {
$query->select('CodPessoa','email','TelRes');
},'pessoa.pessoajuridica' => function ($query) {
$query->select('CodPessoaJuridica','NomeFantasia','Cnpj');
},'pessoa.endereco' => function ($query) {
$query->select('CodEndereco','CodCidade');
},'pessoa.endereco.cidade' => function ($query) {
$query->select('CodCidade','Nome');
},'pessoa.endereco.cidade.estado' => function ($query) {
$query->select('CodEstado','Sigla');
},])->get();
return response()->json($agroindustrias);
}
public function criar (Request $request)
{
try {
$rules = [
'razaoSocial' => 'required','nomeFantasia' => 'required','cnpj' => 'required','email' => 'required','porte' => 'required','estado' => 'required','cidade' => 'required|min:2','logradouro' => 'required','cep' => 'required|size:10','telRes' => 'required',];
$messages = [
'razaoSocial.required' => "Razão Social não foi informada",'nomeFantasia.required' => "Nome Fantasia não foi informado",'cnpj.required' => "CNPJ não foi informado",'email.required' => "Email não foi informado",'porte.required' => "Porte não foi informado",'estado.required' => "Estado não foi informado",'cidade.min' => "Cidade não foi informada",'logradouro.required' => "Logradouro não foi informado",'cep.required' => "CEP não foi informado",'cep.size' => "CEP deve conter 8 dígitos",'telRes.required' => "Telefone Comercial não foi informado",];
$validator = Validator::make($request->all(),$rules,$messages);
if ($validator->fails()) {
return response()->json([
'error' => true,'message' => $validator->errors()->all(),'status' => 422
]);
}
// $criarReg = array();
$uuid = Uuid::uuid4();
$agroindustria = new Agroindustria;
$agroindustria->CodAgroindustria = $uuid;
$agroindustria->Porte = $request['porte'];
$agroindustria->save();
$pessoa = new Pessoa;
$pessoa->CodPessoa = $uuid;
$pessoa->CodEndereco = $uuid;
$pessoa->email = $request['email'];
$pessoa->TelRes = preg_replace('/[^0-9]/','',$request['telRes']);
$pessoa->TelCel = preg_replace('/[^0-9]/',$request['telCel']);
$pessoa->save();
$pessoaJuridica = new PessoaJuridica;
$pessoaJuridica->CodPessoaJuridica = $uuid;
$pessoaJuridica->Cnpj = $request['cnpj'];
$pessoaJuridica->NomeFantasia = $request['nomeFantasia'];
$pessoaJuridica->RazaoSocial = $request['razaoSocial'];
$pessoaJuridica->save();
$endereco = new Endereco;
$endereco->CodEndereco = $uuid;
$endereco->CodCidade = $request['cidade'];
$endereco->Logradouro = $request['logradouro'];
$endereco->Numero = $request['numero'];
$endereco->Bairro = $request['bairro'];
$endereco->Complemento = $request['complemento'];
$endereco->Cep = preg_replace("/[^0-9]/","",$request['cep']);
$endereco->save();
return response()->json([
'error' => false,'data' => [
'message' => 'Dados salvos com sucesso',//$criarReg
'CodAgroindustria' => $uuid
]
]);
} catch (Exception $e) {
return response()->json([
'error' => true,'message' => [$e->getMessage()]
]);
}
}
public function deletar (Request $request,$CodAgroindustria,$CodPessoa,$CodPessoaJuridica,$CodEndereco)
{
$response = array();
$response = Agroindustria::find($CodAgroindustria)->delete();
$response = Pessoa::find($CodPessoa)->delete();
$response = PessoaJuridica::find($CodPessoaJuridica)->delete();
$response = Endereco::find($CodEndereco)->delete();
return response()->json($response,200);
}
public function atualizar ($request,$uuid)
{
try {
$rules = [
'razaoSocial' => 'required','status' => 422
]);
}
$attAgroindustria = Agroindustria::find($request['CodAgroindustria']);
$attAgroindustria->CodAgroindustria = $uuid;
$attAgroindustria->Porte = $request['porte'];
$attAgroindustria->save();
$attPessoa = Pessoa::find($request['CodPessoa']);
$attPessoa->CodPessoa = $uuid;
$attPessoa->CodEndereco = $uuid;
$attPessoa->email = $request['email'];
$attPessoa->TelRes = preg_replace('/[^0-9]/',$request['telRes']);
$attPessoa->TelCel = preg_replace('/[^0-9]/',$request['telCel']);
$attPessoa->save();
$attPessoaJuridica = PessoaJuridica::find($request['CodPessoaJuridica']);
$attPessoaJuridica->CodPessoaJuridica = $uuid;
$attPessoaJuridica->Cnpj = $request['cnpj'];
$attPessoaJuridica->NomeFantasia = $request['nomeFantasia'];
$attPessoaJuridica->RazaoSocial = $request['razaoSocial'];
$attPessoaJuridica->save();
$attEndereco = Endereco::find($request['']);
$attEndereco->CodEndereco = $uuid;
$attEndereco->CodCidade = $request['cidade'];
$attEndereco->Logradouro = $request['logradouro'];
$attEndereco->Numero = $request['numero'];
$attEndereco->Bairro = $request['bairro'];
$attEndereco->Complemento = $request['complemento'];
$attEndereco->Cep = preg_replace("/[^0-9]/",$request['cep']);
$attEndereco->save();
return response()->json([
'error' => false,'data' => 'Dados atualizados com sucesso' //$attRepositories
]);
} catch(Exception $e){
return response()->json([
'error' => true,'message' => [$e->getMessage()]
]);
}
}
}
这是我在Vuetify上的脚本:
<script>
export default {
data () {
return {
search: '',loading: true,headers: [
{ text: '',sortable: false,width: '80px',value: 'actions',align: 'left' },{ text: 'Nome',align: 'left',sortable: true,value: 'pessoa.pessoajuridica.NomeFantasia',width: 'auto' },{ align: 'left',text: 'CNPJ',value: 'pessoa.pessoajuridica.Cnpj',text: 'Porte',value: 'Porte',text: 'Telefone',value: 'pessoa.TelRes',text: 'Estado',value: 'pessoa.endereco.cidade.estado.Sigla',text: 'Cidade',value: 'pessoa.endereco.cidade.Nome',],agroindustrias: [],}
},created () {
// console.log(this.item)
this.api.get('/agroindustria')
.then(response => {
this.agroindustrias = response.data
console.log(this.agroindustrias)
this.loading = false
})
},methods: {
deleteItem (item) {
const index = this.agroindustrias.indexOf(item)
// console.log(this.agroindustrias[index].pessoa.CodEndereco)
this.Swal.fire({
title: 'Apagar Agroindústria',text: 'Você tem certeza que deseja remover esta Agroindústria?',icon: 'warning',showCancelButton: true,confirmButtonColor: '#4caf50',cancelButtonColor: '#ff5252',confirmButtonText: 'Sim,desejo removê-la!',}).then((result) => {
if (result.value) {
this.api.delete('/agroindustria/deletar',{
params: {
CodAgroindustria: this.agroindustrias[index].CodAgroindustria,CodEndereco: this.agroindustrias[index].pessoa.CodEndereco,CodPessoa: this.agroindustrias[index].pessoa.CodPessoa,CodPessoaJuridica: this.agroindustrias[index].pessoa.pessoajuridica.CodPessoaJuridica,},})
this.agroindustrias.splice(index,1)
this.Swal.fire(
'Removido!','Esta agroindustria foi removida com sucesso!','success',)
} else {
this.Swal.fire(
'Erro','Esta agroindustria não pode ser removida!','error',)
}
})
},}
</script>
预先感谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)